milimoe e7214c3fb9
添加新的枚举、字符常量和方法 (#59)
* 添加大量新的枚举,添加缺少的枚举字符串,修改枚举转字符串方法的位置

* 添加StartGame和Gaming的SocketHandler方法

* 添加MainInvokeType.StartGame

* 优化代码格式

* 添加默认的User.ToString()

* 添加EndGame

* 添加GameMode.GetTypeString

* 添加GameMode.GetRoomType
2023-11-23 00:43:34 +08:00

60 lines
1.8 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>
/// 捕获到的异常
/// </summary>
public readonly System.Exception Exception => awaiter.Exception;
/// <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>
/// 返回TaskAwaiter可以连续的调用方法<para/>
/// 但是意义不大前一个OnCompleted方法并不会等待下一个方法<para/>
/// 可以理解为并行广播<para/>
/// </summary>
/// <param name="action"></param>
/// <returns></returns>
public TaskAwaiter OnCompleted(Action action)
{
awaiter = awaiter.OnCompleted(action);
return this;
}
/// <summary>
/// 在捕获到异常时将触发Error事件
/// </summary>
/// <param name="action"></param>
/// <returns></returns>
public TaskAwaiter OnError(Action<System.Exception> action)
{
awaiter = awaiter.OnError(action);
return this;
}
}
}