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