Ответ 1
Создав один или несколько ожидающих и ожидающих, можно ли создавать сопрограммы в С#?
Конечно! У меня есть сообщение в блоге, которое использует TaskScheduler
для создания простых сопрограмм, а у Jon Skeet есть сообщение в блоге, в котором пользовательские awaitables могут создавать простые сопрограммы.
Но, глядя на остальную часть вашего вопроса и комментариев, я не уверен, что coroutines - это то, что вы действительно хотите. Если вы хотите "перебрать" по ожиданиям, лучшим вариантом будет Reactive Extensions (который хорошо взаимодействует с async
). Нет функции языка С# для "выхода async".