对于一般线程,我们可以 abort 来终止其执行,但由 beginInvoke 启动的委托调用,启用线程池线程执行, .Net 没有赋予我们直接停止其调用的方法,由此,我们必须做些工作来实现。
注意,试图操作线程池线程的想法是不合适的,线程池有 CLR 来管理更安全。
我们有以下方法来处理:
1 设置全局变量,作为信号,来通知终止操作。
参考 : http://www.microsoft.com/china/msdn/archives/library/dnforms/html/winforms08162002.asp
2 干脆升级到 .net Framework 2.0 ,使用 BackgroundWorker 类 , 在 2.0 里,可参考 WinFX Software Developer Kit 的相关帮助主题,
3 如果你还不打算升级到 .net Framework 2.0 ,那可以模拟实现 BackgroundWorker 类
参考 : http://www.code-magazine.com/article.aspx?quickid=0403071&page=1
注 ,以上的操作主要在委托函数实现部分支持终止的条件的检查 。