如何在TPL Dataflow中设置/获取/使用块的名称?

时间:2014-06-28 17:51:54

标签: c# .net task-parallel-library tpl-dataflow

MSDN documentation表示NameFormat类上有DataflowBlockOptions个属性,描述为:

  

获取或设置在查询块名称时使用的格式字符串。

那么......你怎么设置这个名字?这个名字怎么样?什么时候使用?

或者......正如我所怀疑的......这只是一个实际上没有实现的设计残余?

1 个答案:

答案 0 :(得分:8)

您没有设置名称,您设置了最终会产生名称的NameFormat(您当然可以忽略参数并设置您想要的任何名称NameFormat = "bar")。您可以使用ToString 获取名称,例如:

var block = new ActionBlock<int>(_ => { }, new ExecutionDataflowBlockOptions
{
    NameFormat = "The name format may contain up to two format items. {0} will be substituted with the block's name. {1} will be substituted with the block's Id, as is returned from the block's Completion.Id property."
});

Console.WriteLine(block.ToString());

输出:

  

名称格式最多可包含两个格式项。 ActionBlock`1将替换为块的名称。 1将被替换为块的ID,如块的Completion.Id属性返回。


如果我们查看source code on .Net Core ToString实施基本

return string.Format(options.NameFormat, block.GetType().Name, block.Completion.Id);