c# - Backgroundworker C#中 "WorkerSupportCancellation"的意义是什么

标签 c# .net multithreading asynchronous background

我猜默认行为是,当我用后台工作程序实现它时,用户可以取消长时间运行的进程。 WorkerSupportCancellation 的意义是什么?

  1. 如果我不将此 WorkerSupportCancellation 设为 true,用户将无法取消?或者换句话说,是不是必须定义这个?

  2. 如果第一个问题的答案是“非强制性”,那么为什么 MS 会提供此功能?我看不出有什么充分理由阻止用户取消该过程,这完全取决于他的选择。此功能适合什么场景?

有人可以解释一下吗。

最佳答案

是的,必须将其设置为 true 才能允许异步取消。在 WorkerSupportsCancellation 设置为 false 的 BackgroundWorker 上调用 CancelAsync() 将导致 InvalidOperationException

参见:BackgroundWorker.CancelAsync()

关于c# - Backgroundworker C#中 "WorkerSupportCancellation"的意义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385852/

相关文章:

c# - 使用jquery在ajax的回调中调用ajax

c# - ninject 中具有多种实现的接口(interface)

c# - 从列表框文件名打开图像 C# winform

c# - .NET app.config 文件——这是否需要与我的应用程序一起分发?

c# - 线程暂停和恢复

java - 暂时停止事件调度线程 Activity (v7)

c# - 反转位移运算符/2 的幂

c# - 如何在 C# 中读取 PowerPoint 幻灯片中的复杂方程式

ios - 如何在通过线程执行工作负载时为微调器设置动画

.net - F# Seq.tryPick 并将函数应用于未选取的成员