using System.Runtime.CompilerServices; namespace XFEExtension.NetCore.TaskExtension; /// /// 任务同步器 /// public class TaskSynchronizer { /// /// 当前任务 /// public Task? CurrentTask { get; set; } /// /// 返回当前任务的等待器 /// /// public TaskAwaiter GetAwaiter() { if (CurrentTask is not null) return CurrentTask.GetAwaiter(); return Task.CompletedTask.GetAwaiter(); } /// /// 添加任务 /// /// 待执行任务 public void AddTask(Task task) => CurrentTask = task; /// /// 任务同步器 /// public TaskSynchronizer() { } /// /// 任务同步器 /// /// 第一个待执行任务 public TaskSynchronizer(Task task) => CurrentTask = task; }