2

是否有类似于Stackless Python的东西,即支持 C# 中的延续、微线程和轻量级进程的框架?我知道 C# 5 将部分支持其中一些特性。但是现在有什么可以用的吗?

4

3 回答 3

2

Axum 类似,但已作为 Microsoft 的一个项目正式删除:

http://msdn.microsoft.com/en-us/devlabs/dd795202

我有一篇博客文章显示了工作中的基本协同程序:

http://adamhouldsworth.blogspot.com/2009/05/microsoft-axum-playtime.html

我不知道这些想法中的任何一个是否已经被推到进入 .NET 4 的并行工作或async接下来将用于 C# 的东西中。

它现在可以使用,并且可以工作 - 但在某些小区域中功能不完整,并且在生产环境中不受支持,因为它(曾经?)是一个孵化项目。

在 CodeProject 上看看这个(它可能会解决您的“轻量级流程”要求):

http://www.codeproject.com/KB/cs/managediocp.aspx

更新:此链接描述了 TPL 数据流,将更多原语添加到 .NET 框架以支持基于代理的编程。它可能再次出现在您感兴趣的领域:

http://blogs.msdn.com/b/pfxteam/archive/2010/10/28/10081950.aspx

于 2011-03-22T16:42:36.643 回答
1

我对这个问题的回答可能会让你开始。我使用迭代器方法 ( yield return) 来实现一个简单的协程,以便在 WPF 中发生一系列动画。该序列将能够使用任何类型的循环等。那实际上只使用了 C# 2.0 功能。

于 2011-03-22T16:50:44.230 回答
0

您的意思是.NET 框架的并行扩展PLINQ 之类的东西?

C# 中的 AFAIK 枚举器块很像延续,但我不是 python 专家。

于 2011-03-22T16:46:20.293 回答