Я рассматриваю способы реализации совлокальных подпрограмм (пользовательских потоков) в С#. При использовании С++ я использовал волокна. Я вижу, что в интернет-волокнах нет на С#. Я хотел бы получить аналогичную функциональность.
Есть ли какой-либо "правильный" способ реализовать сопрограммы в С#?
Я подумал об этом, используя потоки, которые обретают один мьютекс исполнения + 1 в потоке планировщика, который освобождает этот мьютекс для каждой сопрограммы. Но это кажется очень дорогостоящим (он переключает контекст между каждой сопрограммой)
Я также видел функциональность итератора вывода, но, как я понимаю, вы не можете выполнить внутреннюю функцию (только в исходной функции ienumerator). Так что мне это мало пользы.