- ふらっとVisual C#,C♯,C#(初心者用) Part111
42 :デフォルトの名無しさん[sage]:2014/04/14(月) 04:40:22.32 ID:CBNE2ubH - threadからFormをいじろうとするとそうなるんじゃなかったか?
http://kawakawa2000.jugem.jp/?eid=55 こんなんだったかな
| - ふらっとVisual C#,C♯,C#(初心者用) Part111
46 :デフォルトの名無しさん[sage]:2014/04/14(月) 13:42:19.94 ID:CBNE2ubH - thisはその関数が走っている時の関数自身じゃないの?
classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね
| - ふらっとVisual C#,C♯,C#(初心者用) Part111
47 :デフォルトの名無しさん[sage]:2014/04/14(月) 13:44:54.89 ID:CBNE2ubH - 例えばボタンの文字列をスレッドから書き換える
private void button1_Click(object sender, EventArgs e) { Thread t = new Thread(new ThreadStart(loop)); t.Start(); } void loop() { //for (int i = 0; i < 1000; i++) //{ // button1.Text = "new text"; // Thread.Sleep(50); //} SetText("New Text"); } private delegate void SetTextCallback(string msg); private void SetText(string msg) { if (button1.InvokeRequired) { Invoke((MethodInvoker)(()=> { button1.Text = msg; // "Hello, world"; })); return; } // 以下本来の処理 button1.Text = msg; } }
| - ふらっとVisual C#,C♯,C#(初心者用) Part111
48 :デフォルトの名無しさん[sage]:2014/04/14(月) 13:47:28.80 ID:CBNE2ubH - あ、もちろん参照先のページにも書いてあったと思うけど、UIはスレッドセーフじゃないので
マルチスレッドで動かしても、勝手にMutex掛かるよ
| - ふらっとVisual C#,C♯,C#(初心者用) Part111
52 :デフォルトの名無しさん[sage]:2014/04/14(月) 17:30:10.70 ID:CBNE2ubH - 初心者が間違った答えをしてもいいじゃん
お前みたいなでかいツラされて不快になるよりマシ
|
|