[英]Run four tasks with a preset schedule in C#
我有一個這樣的異步編程練習:有 4 個任務: Task1
, Task2
, Task3
, Task4
。 Task1
和Task2
並行運行。 Task3
僅在Task1
或Task2
完成時運行。 Task4
在必須完成所有 3 個先前任務時運行。 我是這樣做的,但是我的老師要求我不要分開處理Task.WaitAny()
的函數(圖中是waitAny()
函數),不要在ContinueWith
中使用 async 。 有人能幫我嗎?
帶有代碼的屏幕截圖。
static async Task<int> waitAny()
{
return Task.WaitAny(runTask1(), runTask2());
}
static void Main(string[] args)
{
waitAny().ContinueWith(
async (_taskToContinue) =>
{
await runTask3();
Task.WaitAll(runTask1(), runTask2(), runTask3());
await runTask4();
});
Console.ReadKey();
}
那時會這樣做。
static void Main(string[] args)
{
var task1 = runTask1();
var task2 = runTask2();
Task.WhenAny(task1, task2).ContinueWith(task =>
{
var task3 = runTask3();
Task.WaitAll(task1, task2, task3);
var task4 = runTask4();
task4.Wait();
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.