【发布时间】:2011-02-05 15:52:29
【问题描述】:
我正在寻找在 c# 中实现协同例程(用户调度线程)的方法。使用 c++ 时,我使用的是纤维。我在互联网上看到 C# 中不存在光纤。我想获得类似的功能。
在 C# 中实现协程有什么“正确”的方法吗?
我曾想过使用在调度程序线程上获取单个执行互斥锁 + 1 的线程来实现这一点,该线程为每个协程释放此互斥锁。但这似乎非常昂贵(它强制每个协程之间进行上下文切换)
我也看到了 yield 迭代器功能,但据我了解,您不能在内部函数中 yield(仅在原始 ienumerator 函数中)。所以这对我没什么好处。
【问题讨论】:
-
你可能会觉得这个有用/有趣:github.com/bvanderveen/coroutine