在.NET/F中实现CSP/GoRoutines需要使用哪些API#

在.NET/F中实现CSP/GoRoutines需要使用哪些API#,.net,f#,goroutine,.net,F#,Goroutine,我在2.0天内休假一段时间后返回.NET。现在,我在.NET中看到了许多用于管理并发性的API/库 我喜欢GoRoutines的感觉,并希望在.NET/F.*中有类似的东西,但我不确定什么是更好的基础。 重要的是要记住,goroutines适用于IO和CPU绑定的场景 p.D:在windows和mono中,我完全控制着F#/.NET的代码库和最新的.NET版本需要知道的重要一点是,虽然可以混合使用传统的c#编写的.NET库,但F#有自己的处理方式。C#有一个语言构造“async/await”,它

我在2.0天内休假一段时间后返回.NET。现在,我在.NET中看到了许多用于管理并发性的API/库

我喜欢GoRoutines的感觉,并希望在.NET/F.*中有类似的东西,但我不确定什么是更好的基础。 重要的是要记住,goroutines适用于IO和CPU绑定的场景


p.D:在windows和mono中,我完全控制着F#/.NET的代码库和最新的.NET版本

需要知道的重要一点是,虽然可以混合使用传统的c#编写的.NET库,但F#有自己的处理方式。C#有一个语言构造“async/await”,它在本质上类似于F#,但在许多方面与F#不同。无论你用哪种方式切割,它们都可能在微妙的方面与你的不同。在这两种情况下,这些方法都适用于IO绑定和CPU绑定的场景。C#:虽然
async/await
可能适用于特殊的CPU绑定场景,但它们的典型用途是IO。另一方面,任务用于CPU受限的工作流。F#中的异步工作流可用于I/O和CPU密集型应用程序。我知道异步编程的基本原理,但不知道如何在这里使用异步工作流……经过一段时间的思考,我想知道这是否简单得多。通道是关键(通信发生的方式),因此我想知道是否只使用concurrentQueue实现通道类型,仅此而已。使用异步、代理或任务不会有多大影响。