我打电话 obackgroundworker.CancelAsync(); 在后台工作目前正在做一些工作,在另一个线程,然后使用 而(obackgroundworker.IsBusy ==真) 等待它退出应用程序(如果之前在线程是远离处理的用户改变主意完成我想关闭干净)后台工作者类取消,设置取消挂起标志,但不退出
平注销挂起设置为正确真实的,但是线程不退出,在工作线程我有:
backgroundworker obackgroundworker = (backgroundworker)sender;
if (obackgroundworker.cancellationpending == true)
e.cancel = true;
,应检查是否取消正在等待,然后将取消标志设置为true,并且我认为这也会导致线程实际终止...?还是有一些其他功能,我需要从线程调用时,它会检测到取消实际结束?
我已经阅读了很多使用完全像上面的背景工作的例子,并且不会报告任何问题。
来源:
http://www.albahari.com/threading/part3.aspx http://www.dotneat.net/2009/02/10/BackgroundworkerExample.aspx http://www.codeproject.com/KB/cpp/BackgroundWorker_Threads.aspx
感谢
这是obackgroundworker.IsBusy的正确用法?我打电话取消后会不会变成错误?目前,即使线程已被请求取消,仍存在无限循环。 – Nath 2009-11-10 10:48:30