using System.Threading; // スレッド用 public partial class Form1 : Form { // スレッドクラス private Thread thread; public Form1() { InitializeComponent(); // スレッドの起動 thread = new Thread(new ThreadStart(this.myThread)); thread.IsBackground = true; // 親子心中フラグ オン thread.Start(); } // スレッド部分 private void myThread() { for(int i=0; i<10; i++){ if(i % 2 == 1){ Invoke(new delColor(setLabelColor), Color.LightGreen); }else{ Invoke(new delColor(setLabelColor), Color.DarkGreen); } Thread.Sleep(1000); } } // スレッドからラベルの背景に色を付ける delegate void delColor(System.Drawing.Color color); internal void setLabelColor(System.Drawing.Color color) { this.label1.BackColor = color; }
.IsBackground を真にすると、親が死んだ時に子も死ぬ。 スレッドの終了方法考えなくてよくなるので便利。