C# 当微软声明“微软”时,它指的是什么;“克隆”;TPL数据流广播块中的消息<;T>;?
我指的是MSDN中的以下链接: 它声明链接到目标的消息是“克隆的”C# 当微软声明“微软”时,它指的是什么;“克隆”;TPL数据流广播块中的消息<;T>;?,c#,task-parallel-library,clone,tpl-dataflow,C#,Task Parallel Library,Clone,Tpl Dataflow,我指的是MSDN中的以下链接: 它声明链接到目标的消息是“克隆的” 我想知道MS在这里指的是什么类型的克隆,深度克隆?它到底是如何影响内存消耗的?当您创建一个广播块时,您定义了克隆功能,因此完全负责它的工作方式。如果要通过引用传递,请不要在克隆函数中对对象执行任何操作: newbroadcastblock(x=>x,选项) 如果你想要深度复制,你必须自己做。broadcast块对它正在处理的数据一无所知。它只知道当消息已满时会丢弃消息,当它将数据传递到管道中时会调用您的函数 另外,Broadca
我想知道MS在这里指的是什么类型的克隆,深度克隆?它到底是如何影响内存消耗的?当您创建一个
广播块时,您定义了克隆功能,因此完全负责它的工作方式。如果要通过引用传递,请不要在克隆函数中对对象执行任何操作:
newbroadcastblock(x=>x,选项)
如果你想要深度复制,你必须自己做。broadcast块
对它正在处理的数据一无所知。它只知道当消息已满时会丢弃消息,当它将数据传递到管道中时会调用您的函数
另外,BroadcastBlock
允许您为cloningFunction
传递null,这可以有效地让您传递数据而无需操作
private TOutput CloneItem(TOutput item)
{
return _cloningFunction != null ?
_cloningFunction(item) :
item;
}
当然是深度克隆,你有证据证明它没有这样做吗?@Program宝藏,因此使用BroadcastBlock时,内存消耗将是内存消耗量的n倍,与迭代链接到目标块并手动将数据项发布到这些块相比,我是否忽略了一个选项,该选项强制广播块传递数据项引用而不是数据克隆?@programtreasures这不是BroadcastBlock
的工作方式;克隆函数在块创建期间作为lambda提供。因此,它可以是满足签名Func
的任何内容。块本身并不决定发生什么类型的复制,即浅/深。很好,请看一看,谢谢。然后,我发现MSDN中的“克隆”一词非常令人困惑。