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ā)度。