4
我是C#TPL和DataFlow的新手,我正在努力研究如何实现TPL DataFlow TransformManyBlock
。我正在将其他代码翻译成DataFlow。我(简体)原代码是这样的:如何用代理构建TransformManyBlock
private IEnumerable<byte[]> ExtractFromByteStream(Byte[] byteStream)
{
yield return byteStream; // Plus operations on the array
}
而在另一种方法,我会这样称呼它:
foreach (byte[] myByteArray in ExtractFromByteStream(byteStream))
{
// Do stuff with myByteArray
}
我试图创建一个TransformManyBlock
产生多个小阵列(实际上是数据包)来自较大的输入数组(实际上是一个二进制流),因此输入和输出都是byte[]
类型。
我尝试了以下的内容,但我知道我错了。我想用和前面相同的函数构造这个块,并且围绕它包装TransformManyBlock
。我收到了一个错误“The call is ambiguous ...”
var streamTransformManyBlock = new TransformManyBlock<byte[], byte[]>(ExtractFromByteStream);
谢谢。这正是我所追求的。你知道这些方法之一是否比其他方法更可取? –
@MattL第一个效率稍高,第二个稍微可读。所以这取决于你决定哪个更重要。 – svick
@svick效率一路。非常感谢。对于我自己的学习,你有任何可以分享的链接,可以进一步解释这一点吗? –