.net TPL数据流块中的异步/同步工作进程委托。哪个更好?
以下各项之间是否存在任何差异:.net TPL数据流块中的异步/同步工作进程委托。哪个更好?,.net,delegates,task-parallel-library,block,dataflow,.net,Delegates,Task Parallel Library,Block,Dataflow,以下各项之间是否存在任何差异: Dim Block As New TransformBlock(Of Integer, Integer)(Function(_i) //sync proccessing Return j
Dim Block As New TransformBlock(Of Integer, Integer)(Function(_i)
//sync proccessing
Return j
End Function)
及
即使我使用同步委托,设置块的MaxDegreeOfParallellerism也会影响其性能。所以,正如我所理解的,block从它的sync委托生成一个任务(T),并处理它的实例
以下哪种变体更适合使用?当您有自然异步工作要做(例如,I/O绑定)时,请使用异步委托 当您有自然同步工作要做时(例如CPU受限),请使用同步委托
两者都不是“更好”;这取决于您需要做什么工作。由于委托正在新的工作线程上运行,我想知道异步委托或同步委托是否会在性能上有太大的差异
例如,同步代理正在读取一个大文件,由于它在工作线程上运行,因此它也不会阻止主线程。这看起来更像是一个注释,而不是一个答案,因为您不确定它是否有效。
Dim Block As New TransformBlock(Of Integer, Integer)(Async Function(_i)
Return Await something
End Function)