我正在寻找在c#中实现协同例程(用户调度线程)的方法.使用c ++时我使用的是光纤.我在互联网上看到C#中不存在光纤.我想获得类似的功能.
有没有"正确"的方法在c#中实现协同程序?
我曾想过使用在调度程序线程上获取单个执行互斥锁+ 1的线程来实现它,该线程为每个协同程序释放这个互斥锁.但这似乎非常昂贵(它强制每个协程之间的上下文切换)
我也看过了yield迭代器的功能,但据我所知,你不能在内部函数中产生(仅在原始的ienumerator函数中).所以这对我有点好处.
c# coroutine fiber
SortedDictionary.Countc#的成本是多少?它是检索某个整数,还是在树上迭代?
SortedDictionary.Count
c#
c# ×2
coroutine ×1
fiber ×1