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效率一路。非常感謝。對於我自己的學習,你有任何可以分享的鏈接,可以進一步解釋這一點嗎? –