C#的Windows窗体应用程序中,如何实现停止按钮功能?
有一个“开始”按钮,点击之后执行的事件是:不停的扫描数据库中表的变化,然后做相应的操作(用定时器实现)。
问题是,我想在点击“停止”按钮以后,立即结束这个过程。怎么写??
我试过的方法:定义一个全局变量a,“停止”按钮里让全局变量变为false,在定时器执行前先判断a的值,然后做相应的操作。这样做出现了一个问题,如果在执行相应操作过程中点击了“停止”按钮,程序会出现卡死现象。。我分析原因可能是程序是由于同步执行的,会等到当前操作完成后再执行停止。。。
求大虾告知解决方法
------解决方案--------------------线程或者增加变量,比如
while(!stop)
{
...dosomething
application.doevent();//给cpu时间相应其他操作
}
停止 stop = true;
------解决方案--------------------用线程去执行时时扫描数据库,当你结束的时候,将线程释放就行!
------解决方案--------------------
------解决方案--------------------可能可以用委托,
窗体加载的时候,来注册委托,
在单击开始事件的时候,触发委托,执行委托所注册的方法
,在方法里判断委托是否为Null,不为Null执行下去
在单击停止的时候,对委托进行干扰 t.my_delegate = null;也就是赋空