溫馨提示×

c# taskfactory如何實現任務調度

c#
小樊
110
2024-07-26 17:22:11
欄目: 編程語言

TaskFactory類是C#中用于創(chuàng)建和啟動任務的工廠類。通過TaskFactory類可以方便地創(chuàng)建并行任務,然后通過調度器來控制任務的執(zhí)行順序。

要實現任務調度,可以使用TaskFactory類的StartNew方法來創(chuàng)建任務,并設置任務的調度器,例如TaskScheduler.FromCurrentSynchronizationContext來指定任務在當前同步上下文中執(zhí)行,或者使用TaskScheduler.Default來指定任務在默認調度器中執(zhí)行。

以下是一個簡單的示例代碼,演示了如何使用TaskFactory實現任務調度:

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        TaskFactory taskFactory = new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext());

        Task task1 = taskFactory.StartNew(() =>
        {
            Console.WriteLine("Task 1 started");
            Thread.Sleep(1000);
            Console.WriteLine("Task 1 completed");
        });

        Task task2 = taskFactory.StartNew(() =>
        {
            Console.WriteLine("Task 2 started");
            Thread.Sleep(1000);
            Console.WriteLine("Task 2 completed");
        });

        Task.WaitAll(task1, task2);

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

在上面的示例中,我們創(chuàng)建了一個TaskFactory對象,并使用StartNew方法創(chuàng)建了兩個任務task1和task2,并指定了任務的調度器為當前同步上下文。然后使用Task.WaitAll方法等待所有任務執(zhí)行完成。

通過使用TaskFactory類和適當的TaskScheduler,我們可以方便地實現任務調度,控制任務的執(zhí)行順序和并發(fā)度。

0