之间是否存在任何差异:
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)
即使我使用Sync委托,设置块的MaxDegreeOfParallelerism也会影响其性能。因此,当我得到它时,block从其同步委托创建一个Task(Of T)并与其实例一起工作。
最好使用哪种变体?
答案 0 :(得分:2)
当您进行自然异步工作时(例如,I / O绑定),请使用异步委托。
当您有自然同步工作时(例如,CPU绑定),请使用同步委托。
两者都不“更好”;这取决于你需要做什么样的工作。
答案 1 :(得分:0)
由于委托正在新的工作线程上运行,我想知道异步委托还是同步委托在性能上会有太大差异。
例如,同步委托正在读取一个大文件,并且由于它正在工作线程上运行,因此它也不会阻塞主线程。