我建了一个简单的小程式在测试多执行绪
Form里放了一个Textbox,两个Button
多执行绪内容如下
a = 0;
while (true)
{
a++;
textBox1.Text = a.ToString();
if (a >= 10000)
{
sample.Abort();
}
}
Button1内容如下
sample = new Thread(Thread_test);
sample.IsBackground = true;
sample.Start();
Button2内容如下
sample.Abort();
现在的疑问点,我在正常操作流程,点一次Button1,等sample跑完,再点,等跑完。
或者是点一次Button1,在sample还没跑完,点Button2使sample停止,动作都很正常。
现在疑问点,在假设我按了一次Button1,在还没执行完毕时,再按一次Button1,
感觉会有两个thread再执行,可以看到sample.ManagedThreadId在第二次按下时有改
变。但发现thread似乎就停不下来了。
我另外写了一个timer判断sample.IsAlive,但我看到的是当textbox1数值到达10000
时,sample.IsAlive以经是false,但实际上我的textbox1依然再增加。
想请问这个状况我能怎样关闭?