标题:[求助] 一个关于 BackgroundWorker 类的问题
取消只看楼主
zerohcy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-7-13
 问题点数:0 回复次数:0 
[求助] 一个关于 BackgroundWorker 类的问题

大家好,我最近开始研究这个类。看了一点关于这方面的介绍,发现了一点问题,所以来请教一下。
这个类在网上有很多例子,100%的都是在这个类的DoWork里运行这样一段代码

private void bw_DoWork(object sender, DoWorkEventArgs e)
{
for (double d = 599999999 ; d >= 0; d--)
{
//bw.CancellationPending默认为false
//想取消后台程序就执行bw.CancelAsync(),bw.CancellationPending就为true了
if (bw.CancellationPending)
{
e.Cancel = true;
break;
}
if (d == 0)
{
MessageBox.Show("Completed!");
}
}
}
大家可以看到在循环过成中可以不停的判断用户是否做了取消后台的操作,但是实际中DoWork往往不是一个循环体的,比果是执行一段要运行很久的sql,那用户在sql执行过程中想取消后台的sql执行,那又怎么办呢?如何在不能循环判断bw.CancellationPending的情况下退出DoWork事件呢?
搜索更多相关主题的帖子: private double false 网上 
2006-09-19 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-91302-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.869892 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved