Скорее всего, вам нужно запустить их одновременно , а не параллельно.Параллелизм делает больше, чем одну вещь одновременно;параллель - это разделение работы между несколькими потоками.
Во-первых, не используйте ContinueWith
;используйте async
/ await
вместо:
async Task AThenB()
{
var a = await SomeTaskA();
return await SomeTaskB(a);
}
async Task CThenD()
{
var c = await SomeTaskC();
return await SomeTaskD(c);
}
После того, как вы определили эти методы, вы можете использовать await Task.WhenAll
для асинхронного параллелизма:
var bTask = AThenB();
var dTask = CThenD();
await Task.WhenAll(bTask, dTask);
ObjectB bValue = await bTask;
ObjectD dValue = await dTask;