F# F中的节流并行选项#
我想在处理某些数据时使用限制并行。有以下几种选择:F# F中的节流并行选项#,f#,F#,我想在处理某些数据时使用限制并行。有以下几种选择: 使用.Net的阻塞队列 Tomas的BlockingQueueAgent,使用MailboxProcessor 使用C#任务 还有其他选择吗?特别是这些惯用的F#方法?请看,有趣的是,第一个问题也是由Tomas回答的。它与他的BlockingQueueAgent相比如何?我在c#中使用了,但在f#中没有。不幸的是,f#async与c#Task不同,需要进行一些转换。在F#世界中,这是一个真正存在的美好事物,因为所有的“块”都是真正的功能结
- 使用.Net的阻塞队列
- Tomas的BlockingQueueAgent,使用
MailboxProcessor
- 使用C#任务
还有其他选择吗?特别是这些惯用的F#方法?请看,有趣的是,第一个问题也是由Tomas回答的。它与他的BlockingQueueAgent相比如何?我在c#中使用了,但在f#中没有。不幸的是,f#async与c#Task不同,需要进行一些转换。在F#世界中,这是一个真正存在的美好事物,因为所有的“块”都是真正的功能结构。这些块采用的是提供您所寻求的限制的方法。看起来我一直在一遍又一遍地写相同的答案:-)。我认为
ThrottlingAgent
答案只是对特定问题的直接回答,而BlockingQueueAgent
是一个更通用的工具,可用于实现节流模式。两者都会以同样的方式完成任务。这就是说,如果您可以不使用标准的.NET阻塞队列,那么这可能就是最好的方法-没有代码总是比某些代码好,即使它是我的:)