2014-03-07 28 views
1

是否有之間的差異:TPL Dataflow塊中的Async/Sync工作人員委託。哪個更好?

Dim Block As New TransformBlock(Of Integer, Integer)(Function(_i) 
                //sync proccessing 
                 Return j 
                End Function) 

而且

Dim Block As New TransformBlock(Of Integer, Integer)(Async Function(_i) 
                 Return Await something 
                End Function) 

即使我使用同步委託,設定塊的MaxDegreeOfParallelerism影響其更流暢。所以,就我所知,塊從它的同步代理中創建一個Task(Of T)並使用它的實例。

以下哪個變體最好使用?

回答

2

當您有自然異步工作(例如,I/O綁定)時使用異步委託。

當您進行自然同步工作時(例如,CPU綁定),請使用同步委託。

兩者都不是「更好」;這取決於你需要做什麼樣的工作。

+0

我明白了,謝謝。 – AsValeO