2017-04-19 27 views
1

我設計由各種數據塊的數據流複雜。我發送一個數據包到流中,並在最後收到一個結果。TPL數據流調用數據流的兩倍

input.Post(); 
input.Complete(); 

// and later with 
ReceiveAsync(); 

工作,爲第一次調用一切工作正常,但我不知道如何通過發送第二數據包到流圖。

我也必須使用一個WriteOnceBlock,可這是呼叫的數據流兩倍的問題在圖表上?

+0

你應該張貼您的流量進行檢查,我們不能告訴你爲什麼它不沒有看到它的工作。一般來說,如果你在流程中調用了'Complete',你將不能發送任何進一步的數據。此外,正如其名了'WriteOnceBlock'只能寫入一次,但真的不應該在你的主要管道,可能出現的一個分支,但只有一次一個數據將被寫入其中。 – JSteward

回答

1

在您爲其調用Complete方法或通過完成傳播鏈接到它們的人後,您不能使用TPL Dataflow塊中的任何一個。因此,無論您需要重新創建你的每一個你的電話,或管道(這是首選)不要叫Complete只是一個電話。

建議將您的設計: