В настоящее время у меня есть большое количество вычислений С# (вызовы методов), проживающих в очереди, которые будут выполняться последовательно. В каждом вычислении будет использоваться служба с высокой задержкой (сеть, диск...).
Я собирался использовать Mono coroutines, чтобы продолжить вычисление в очереди вычислений, пока предыдущее вычисление ожидает возвращения службы с высокой задержкой. Однако я предпочитаю не зависеть от Mono coroutines.
Есть ли шаблон проектирования, который реализуется в чистом С#, который позволит мне обрабатывать дополнительные вычисления, ожидая возвращения служб с высокой задержкой?
Спасибо
Update:
Мне нужно выполнить огромное количество ( > 10000) задач, и каждая задача будет использовать некоторую службу с высокой задержкой. В Windows вы не можете создать столько потоков.
Update:
В принципе, мне нужен шаблон проектирования, который эмулирует преимущества (как указано ниже) задач в Stackless Python (http://www.stackless.com/)
- Огромное количество задач
- Если задача блокирует следующую задачу в очереди, выполните
- Отсутствие цикла процессора cpu
- Минимальное переключение между задачами