44 lines
1.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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