Я ищу способы реализовать совместные подпрограммы (пользовательские потоки) в C#. При использовании C++ я использовал волокна. Я вижу, что в интернет-волокнах нет на C#. Я хотел бы получить аналогичную функциональность.Coroutines in C#
Есть ли «правильный» способ реализовать сопрограммы в C#?
Я подумал об этом, используя потоки, которые получают один мьютез выполнения + 1 в потоке планировщика, который освобождает этот мьютекс для каждой сопрограммы. Но это кажется очень дорогостоящим (он переключает контекст между каждой сопрограммой)
Я также видел функциональность итератора вывода, но, как я понимаю, вы не можете выполнить внутреннюю функцию (только в исходной функции ienumerator). Так что мне это мало пользы.
Ссылка: http://blogs.msdn.com/larryosterman/archive/2005/01/05/347314.aspx –
Вы можете найти это полезно/интересно: https://github.com/bvanderveen/coroutine – gsscoder