F#的异步状态机是否与C#的async或go-lang的命令相同?

时间:2014-04-20 14:12:04

标签: c# f# go async-await

我们在此处看到a paper by Don Syme on Async state machines in F#。我试图绕过它。

我的问题是 - 这是否与C#中的async命令相同? (和go-lang的go命令)

1 个答案:

答案 0 :(得分:0)

它不完全相同,不,但C#也使用状态机在编译时构建异步版本的方法。

请参阅http://msdn.microsoft.com/en-us/magazine/hh456403.aspx,了解Mads Torgersen关于如何在编译器中为C#的异步令牌重写方法的精彩文章。

在golang中,从概念上讲,goroutines与.Net TPL比async令牌更相似。如果goroutine变为阻塞,则会在线程上换掉另一个goroutine,因此您将使用更多的线程池构造。 Go将为您处理非阻塞I / O.