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