即使调用“ Complete()”,C#TransformBlock也不会运行。

问题描述 投票:0回答:1
我有此代码段,尝试使用TransformBlock启动代码执行,如下所示:

public static void Main(string[] args) { var multiplyBlock = new TransformBlock<int, int>(x => x * 2); var additionBlock = new TransformBlock<int, int>(x => x + 2); multiplyBlock.LinkTo(additionBlock, new DataflowLinkOptions { PropagateCompletion = true }); multiplyBlock.Post(3); additionBlock.Completion.ContinueWith(x => Console.WriteLine(x)); multiplyBlock.Complete(); additionBlock.Completion.Wait(); }

但是当我运行此代码时,它挂起并且不打印任何内容。我尝试对其进行调试,发现所有代码行均已完成,但是在功能结束时,程序挂起了。那么,这里发生了什么,以及如何解决?

谢谢。

我有此代码段,尝试使用TransformBlock来开始执行代码,如下所示:public static void Main(string [] args){var multipleBlock = new TransformBlock

(x =&...

c# transform hang tpl-dataflow complete
1个回答
1
投票
您需要使用ActionBlock来消耗TransFormBlock的输出,如下所示:
© www.soinside.com 2019 - 2024. All rights reserved.