簡體   English   中英

在 C# 中以預設的時間表運行四個任務

[英]Run four tasks with a preset schedule in C#

我有一個這樣的異步編程練習:有 4 個任務: Task1Task2Task3Task4 Task1Task2並行運行。 Task3僅在Task1Task2完成時運行。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM