スレッドの宣言と開始
スレッド内でのコントロール操作(参考サイト:方法 : Windows フォーム コントロールのスレッド セーフな呼び出しを行う)
ラムダ式使用(参考サイト:ひっそりと・とぼとぼと 【C#】スレッド間のコントロール操作について)
// 宣言 private Thread _thd; // スレッドの実行 private void Form1_Load(object sender, EventArgs e) { _thd = new Thread(new ThreadStart(_thdProc)); _thd.IsBackground = true; _thd.Start(); }
スレッド内でのコントロール操作(参考サイト:方法 : Windows フォーム コントロールのスレッド セーフな呼び出しを行う)
// スレッド private void _thdProc() { while(true) { // コントロール操作 this.SetText(DateTime.Now.ToString()); Thread.Sleep(5); } } // デリゲート private delegate void SetTextCallBack(string text); // コントロール操作用 private void SetText(string text) { if (this.label1.InvokeRequired) { SetTextCallBack d = new SetTextCallBack(SetText); this.Invoke(d, new object[] { text }); } else { this.label1.Text = text; } }
ラムダ式使用(参考サイト:ひっそりと・とぼとぼと 【C#】スレッド間のコントロール操作について)
private void _thdProc() { while(true) { // ラムダ式を使用してコントロール操作 this.Invoke((Action)delegate() { this.label1.Text = DateTime.Now.ToString(); }); Thread.Sleep(5); } }
コメントをかく