是的,C# 的 TaskScheduler
类允许你移动任务。你可以使用 TaskScheduler.MoveNext()
方法来获取下一个任务并执行它。以下是一个简单的示例:
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 创建一个新的任务调度器
TaskScheduler taskScheduler = new TaskScheduler();
// 创建一个任务
Task task1 = Task.Factory.StartNew(() => Console.WriteLine("Task 1 executed."), CancellationToken.None, TaskCreationOptions.None, taskScheduler);
// 创建另一个任务
Task task2 = Task.Factory.StartNew(() => Console.WriteLine("Task 2 executed."), CancellationToken.None, TaskCreationOptions.None, taskScheduler);
// 等待任务完成
Task.WaitAll(task1, task2);
}
}
在这个示例中,我们创建了一个新的 TaskScheduler
实例,并使用它来调度两个任务。然后,我们使用 Task.WaitAll()
方法等待这两个任务完成。TaskScheduler
类允许你在不同的线程上执行任务,从而实现任务的移动。