winform中多线程的thread abort问题,有时整个页面会卡死
winform里有2个button,一个是start,一个是stop。
点击start button时,会启动一个新的线程去做相应的操作。
想实现点击stop时,把刚才的线程kill掉,现在是使用的thread.Abort()方法。
已经在线程里捕获了ThreadAbortException,所以不会有其他异常。
但是问题是:比如点一下start,等线程正在运行的时候再点stop。这个操作我做10次的话,基本上会有一次是把整个winform窗体卡住了,请问是为什么?怎么解决?
有朋友说尽量不要用Abort()方法,可以设置个标志位去告诉线程结束,可是我这个线程是个耗时的方法,我想立即就让它结束,设置标志位还要等一段时间才能结束。
另外还有个小问题,我在windows_closed()方法里也调用了abort()方法,就是说每次关闭的时候关闭线程,这个就从来没有出过问题,难道还有优先级的情况?