using System.Runtime.CompilerServices; namespace IFramework { /// /// 表示一个可等待对象,如果一个方法返回此类型的实例,则此方法可以使用 `await` 异步等待。 /// /// 用于给 await 确定返回时机的 IAwaiter 的实例。 public interface IAwaitable where TAwaiter : IAwaiter { /// /// 获取一个可用于 await 关键字异步等待的异步等待对象。 /// 此方法会被编译器自动调用。 /// TAwaiter GetAwaiter(); } /// /// 表示一个包含返回值的可等待对象,如果一个方法返回此类型的实例,则此方法可以使用 `await` 异步等待返回值。 /// /// 用于给 await 确定返回时机的 IAwaiter{} 的实例。 /// 异步返回的返回值类型。 public interface IAwaitable where TAwaiter : IAwaiter { /// /// 获取一个可用于 await 关键字异步等待的异步等待对象。 /// 此方法会被编译器自动调用。 /// TAwaiter GetAwaiter(); } }