这样的问题:

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”块的完成,也就是说,它只是被扔掉而忘记了吗?

最佳答案

这没有记录,但是根据我的测试,即使在CompletionNullTarget之后,Complete()Fault()也将永远不会完成。

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

关于task-parallel-library - 您是否需要在TPL数据流上等待完成DataflowBlock.NullTarget <T>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21902922/

10-10 03:03