您是否需要等待TPL Dataflow DataflowBlock.NullTarget完成<t> </t>

时间:2014-02-20 09:05:02

标签: task-parallel-library dataflow

像这样的问题:

TPL Dataflow, how to forward items to only one specific target block among many linked target blocks?

建议使用DataflowBlock.NullTarget {T}来丢弃管道中的项目,例如

forwarder.LinkTo(DataflowBlock.NullTarget<SomeType>());

但是,如果你像这样使用NullTarget,你如何等待完成?创建丢弃块会不会更好:

ITargetBlock<SomeType> discard = DataflowBlock.NullTarget<SomeType>();
forwarder.LinkTo(discard);

并等待完成?即。

discard.Completion.Wait()

或者您是否需要等待“NullTarget”块的完成,即它是否只是扔掉而忘记?

1 个答案:

答案 0 :(得分:3)

这没有记录,但根据我的测试,即使在Completion或{{NullTarget之后,Complete()的{​​{1}} 永远不会完成1}}它。

这意味着您不能等待Fault()块的完成,因为等待永远不会结束。