写了按钮事件就是创建一个线程的,代码如下:
private void button1_Click(object sender, EventArgs e)
{
change = new Thread(new ThreadStart(() =>
{
int num = 0;
int i=0;
while (i<300)
{
if (num == 0)
{
for (int op = 0; op < 4; op++)
{
trafficlights[op].DirectionAndColor["Straight"] = "Green";
trafficlights[op].DirectionAndColor = trafficlights[op].DirectionAndColor;
}
num = 1;
}
else
{
for (int op = 0; op < 4; op++)
{
trafficlights[op].DirectionAndColor["Straight"] = "Red";
trafficlights[op].DirectionAndColor = trafficlights[op].DirectionAndColor;
}
num = 0;
}
i++;
Thread.Sleep(5);
}
}));
change.IsBackground = true;
change.Start();
}
在调试的时候,可能由于窗体的线程已经结束,而此线程仍然在运行。导致有访问不存在对象的异常。
目前的疑问就是我们很轻松的开始了一个线程,并且希望这个线程在窗口未关闭前一直后台运行,
但是如何能够人工地让一个线程终止呢???