我叫obackgroundworker.CancelAsync(); 在一个后台工作者当前在另一个线程中做一些工作然后使用while(obackgroundworker.IsBusy == true)等待它在退出应用程序之前完成(如果用户在线程离开处理时改变主意并且我想要干净地关闭)
取消挂起的单位正确设置为true但线程没有退出,在工作线程中我有:
backgroundworker obackgroundworker = (backgroundworker)sender;
if (obackgroundworker.cancellationpending == true)
e.cancel = true;
Run Code Online (Sandbox Code Playgroud)
应检查取消是否待定,然后将取消的标志设置为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
谢谢