using Milimoe.FunGame.Core.Interface.Base;
namespace Milimoe.FunGame.Core.Library.Common.Architecture
{
///
/// 任务的等待器,可以设置在任务完成后需要的操作
///
public struct TaskAwaiter
{
///
/// 任务是否完成
///
public readonly bool IsCompleted => awaiter.IsCompleted;
///
/// 内部实现类
///
///
private ITaskAwaiter awaiter;
///
/// 构造一个等待器
///
///
internal TaskAwaiter(ITaskAwaiter awaiter)
{
this.awaiter = awaiter;
}
///
/// 返回TaskAwaiter可以连续的调用方法
/// 但是意义不大,前一个OnCompleted方法并不会等待下一个方法
/// 可以理解为并行广播
///
///
///
public TaskAwaiter OnCompleted(Action action)
{
awaiter = awaiter.OnCompleted(action);
return this;
}
}
}