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;
}