// 这里必须要写入System.Runtime.CompilerServices这个命名空间
namespace System.Runtime.CompilerServices
{
///
/// 这个属性的用法参考网上的async/await 状态机原理
/// AsyncTaskMethodBuilder中对应的方法也是根据这部分原理来创建的。
///
public sealed class AsyncMethodBuilderAttribute : Attribute
{
public Type BuilderType { get; }
///
/// 当一个方法被await后,编译器会将等待的方法转换成状态机,具体步骤就是按照builderType的中的方法去创建,
/// 因此AsyncTaskMethodBuilder中会提供一系列需要的方法,否者会报错。
///
///
public AsyncMethodBuilderAttribute(Type builderType)
{
BuilderType = builderType;
}
}
}