トップページ > プログラム > 2014年04月14日 > CBNE2ubH

書き込み順位&時間帯一覧

6 位/201 ID中時間01234567891011121314151617181920212223Total
書き込み数0000100000000300010000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
ふらっとVisual C#,C♯,C#(初心者用) Part111

書き込みレス一覧

ふらっと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
初心者が間違った答えをしてもいいじゃん
お前みたいなでかいツラされて不快になるよりマシ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。