线程问题
初次点击某按钮,执行某方法,再次点击,停止执行。再次点击,继续执行。该过程是否能用线程解决,该如何解决。本人对线程不了解,望高手指教。
程序代码: Thread t = null;
int i = 1;
private void button1_Click(object sender, EventArgs e)
{
if (i % 2 != 0)
t = new Thread(new ThreadStart(Start));
else
t = new Thread(new ThreadStart(End));
t.Start();
i++;
}
private void Start()
{
MessageBox.Show("我是线程,开始工作!");
if(t != null)
t.Abort();
}
private void End()
{
MessageBox.Show("我是线程,结束工作!");
if(t != null)
t.Abort();
}EventWaitHandle eventWait = new EventWaitHandle(true, EventResetMode.ManualReset);//用true表示eventWait是无效的,遇到eventWait.WaitOne();也不会阻止
eventWait.WaitOne();//这里请注意,只有使用过eventWait.Reset();之后它才会阻止进程,但是如果使用过一次eventWait.Set();之后它又无效了
程序代码: private void btn_Click(object sender, EventArgs e)
{
if (isWait)
{//解除eventWait.WaitOne();的阻止,并且这时eventWait无效,下一次运行到这个地方WaitOne();的时候也不会阻止
eventWait.Set();
}
else
{//让eventWait生效,当运行到循环中eventWait.WaitOne();语句时等待
eventWait.Reset();
}
isWait = !isWait;
}