Вы хотите взглянуть на Task Parallel Library . Эта библиотека может использоваться для многопоточности или нет, поэтому она достаточно надежна. Фактически, это то, на чем строится следующая версия ключевых слов * .NET async/await
. Вскоре я напишу небольшой фрагмент кода.
var task = Task.Factory.StartNew<String>(
()=>
{
//Do some long running task
return "Here are my results from part 1";
})
.ContinueWith<Int32>(
(previousTask)=>
{
var previousResult = previousTask.Result;
//Do some other long running task using the previous result
return 1;
});
Есть много, что вы можете сделать с TPL. Это всего лишь общая идея.
Также для итераторов есть ключевое слово yield , но оно не обязательно асинхронное.