gpt4 book ai didi

c# - 使用 backgroundWorker 下载文件

转载 作者:行者123 更新时间:2023-11-30 14:16:34 24 4
gpt4 key购买 nike

我已经创建了下载文件

private void btnTestDownload_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}

然后工作!但是

private void btnTestDownload_Click(object sender, EventArgs e)
{
backgroundWorker1.CancelAsync();
}

backgroundWorker 不会停止!

最佳答案

CancelAsync 不会导致 worker 停止。您必须手动执行此操作。在 worker 方法中,您必须定期检查它的 CancellationPending 属性以查看它是否应该取消。

所以基本上 DoWork 方法的主体应该是这样的:

foreach( var something in somethingelse )
{
if (worker.CancellationPending == true) {
e.Cancel = true;
return;
}
//do your work here
}

如果您在 worker 方法中只是调用了一些本身需要很长时间才能完成的其他方法,并且您没有可能自己定期检查 CancellationPending 变量,那么要做到这一点并不容易在不强行破坏线程的情况下按命令停止 worker。

关于c# - 使用 backgroundWorker 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com