什么是可以接受的?

Big*_*yes 4 .net asynchronous async-await

我听说等待是异步操作.但是,由于这是一个重要的概念,为什么我在MSDN上找不到精确的定义?

我的问题不是如何编写async/await.我的问题是要了解这个概念.MSDN有这个概念,async/await但没有awaitable.

那么什么是等待的?如果是手术,包含哪些内容?

Big*_*yes 7

最后我在Async/Await FAQ上找到它.

" awaitable "是暴露GetAwaiter方法的任何类型,该方法返回有效的"awaiter".此GetAwaiter方法可以是实例方法(在Task和Task <TResult>的情况下),或者它可以是扩展方法.

" awaiter "是从等待的GetAwaiter方法返回的任何类型,并且符合特定模式.awaiter必须实现System.Runtime.CompilerServices.INotifyCompletion接口,并且可以选择实现System.Runtime.CompilerServices.ICriticalNotifyCompletion接口.除了提供来自INotifyCompletion的OnCompleted方法的实现(以及可选的来自ICriticalNotifyCompletion的UnsafeOnCompleted方法)之外,awaiter还必须提供IsCompleted布尔属性以及无参数的GetResult方法.如果awaitable表示返回void的操作,则GetResult返回void;如果awaitable表示返回TResult的操作,则返回TResult.

这个关于等待和等待的链接很有帮助.