this.backgroundWorker1.CancelAsync()没效果。。。。 this.backgroundWorker1.CancelAsync()没效果。不知道为啥,运行了上面的了。backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)一直还在运行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用this.backgroundWorker1.CancelAsync()并不能结束后台线程,要想提前结束这个线程,需要在你的DoWork事件事件处理函数中进行处理,示例代码如下:private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { for (int i = 0; i < 10; i++ ) { if ((BackgroundWorker)sender.CancellationPending) { e.Cancel = true; break; } //dosomething..... } }private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled) { //Cancelled } else { //Succeed } } 如果你想结束的话要在DoWork事件里面写的 看看这个吧:http://www.cnblogs.com/lexus/archive/2008/08/27/1277956.html 请教一下大家,这个嵌套的不正规JSON格式的文件,怎么建立实例类来对它进行反序列化呢? wpf中一组radiobutton为什么不能设默认选项? 如何知道数据库中哪些表被写入? WCF从理论到实践:事件广播 50分送出 关于拼SQL语句 很奇怪的问题,是关于ConfigurationManager,我怎么不能够使用它? 请问有哪个比较好的下载c#源代码的网站? 問題!! 有关DevExpress中chartTable的问题? SharpZipLib 问题 c#程序com组件注册问题 大家给点建议,数据库项目用WINFORM还是WEB
要想提前结束这个线程,需要在你的DoWork事件事件处理函数中进行处理,示例代码如下:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 10; i++ )
{
if ((BackgroundWorker)sender.CancellationPending)
{
e.Cancel = true;
break;
}
//dosomething.....
}
}private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled)
{
//Cancelled
}
else
{
//Succeed
} }
http://www.cnblogs.com/lexus/archive/2008/08/27/1277956.html