我有此代码段:
static void Main(string[] args)
{
var printResult = new ActionBlock<int>(x =>
{
Console.WriteLine(x);
});
var countBytes = new TransformBlock<int, int>(
new Func<int, int>((x)=> { return 2 * x; }));
countBytes.LinkTo(printResult, new DataflowLinkOptions { PropagateCompletion = true });
countBytes.Completion.ContinueWith(delegate { printResult.Complete(); });
countBytes.Complete();
printResult.Completion.Wait();
Console.ReadKey();
}
我希望有TransformBlock代码
return 2*x
将运行,然后打印结果,但实际上不打印任何内容。我在[]内设置了一个断点
printResult
“ Console.WriteLine”上的功能对象,但未介入。
为什么不打印任何东西,我在哪里弄错了以及如何解决它?
我有此代码段:static void Main(string [] args){var printResult = new ActionBlock
您缺少告诉countBytes
将完成传播到链接块的设置(尝试使用ContinueWith()完成链接块是错误的方法)。
此外,如果您不向管道发布任何内容,将不会有任何输出。