溫馨提示×

c# startcoroutine 怎樣進行任務調度

c#
小樊
130
2024-11-29 00:22:25
欄目: 編程語言

在C#中,協程(Coroutine)是一種輕量級的線程,可以在單個線程上實現并發執行。要使用協程進行任務調度,可以使用asyncawait關鍵字。以下是一個簡單的示例,展示了如何使用協程進行任務調度:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 創建一個任務列表
        var tasks = new List<Task>
        {
            Task.Run(() => ScheduleTask("Task 1")),
            Task.Run(() => ScheduleTask("Task 2")),
            Task.Run(() => ScheduleTask("Task 3"))
        };

        // 等待所有任務完成
        await Task.WhenAll(tasks);

        Console.WriteLine("All tasks completed.");
    }

    static async Task ScheduleTask(string taskName)
    {
        Console.WriteLine($"Scheduling {taskName}...");

        // 模擬任務執行時間
        await Task.Delay(1000);

        Console.WriteLine($"{taskName} completed.");
    }
}

在這個示例中,我們創建了一個任務列表,其中包含三個任務。每個任務都調用ScheduleTask方法,該方法使用asyncawait關鍵字來調度任務執行。Task.Delay方法用于模擬任務執行時間。最后,我們使用Task.WhenAll方法等待所有任務完成。

請注意,這個示例中的任務調度是基于線程池的。C#會自動將任務分配給線程池中的線程來執行。如果你需要更精細的控制任務調度,可以考慮使用TaskScheduler類。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女