Big*_*yes 4 .net asynchronous async-await
我听说等待是异步操作.但是,由于这是一个重要的概念,为什么我在MSDN上找不到精确的定义?
我的问题不是如何编写async/await.我的问题是要了解这个概念.MSDN有这个概念,async/await但没有awaitable.
那么什么是等待的?如果是手术,包含哪些内容?
最后我在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.
| 归档时间: |
|
| 查看次数: |
2797 次 |
| 最近记录: |