为什么BackgroundWorker的WorkerReportsProgress和WorkerSupportsCancellation的默认值为false?

时间:2012-09-11 15:32:57

标签: c# performance backgroundworker

使用BackgroundWorker的{​​{1}}和WorkerReportsProgress设置为WorkerSupportsCancellation是否会影响性能?还有其他原因让他们成为true吗?

false会更合乎逻辑,因为如果你不想实现它们 - 那就不要了。 true不会伤害你。

我正在考虑将true封装在一个类中(所以我不会忘记将这些属性设置为true,以及其他一些东西)。但由于默认值为BackgroundWorker,或许这表明它们处于false的某些劣势。

3 个答案:

答案 0 :(得分:1)

根据设置为BackgroundWorker的{​​{1}}代码WorkerReportsProgress,将阻止用户代码调用false方法。 ReportProgress方法本身非常快,但计算当前的表示可能需要一些时间。所以我认为没有很大的性能差距,但可以保存一些滴答。

答案 1 :(得分:1)

似乎他们只是通知呼叫程序它无法呼叫它们。

答案 2 :(得分:0)

我从未注意到任何退化。我经常使用这些,几乎总是将这些值设置为true。如果有惩罚,那么它必须被它提供的功能抵消。如果支持相反的数据,我想了解它。