Jes*_*ter 6 .net c# f# async-await
F#async或C#的async/await关键字实际上如何运作?
我们以MailboxProcessor为例:
type Agent<'T> = MailboxProcessor<'T>
let agent = Agent.Start(fun inbox ->
let rec loop() = async {
let! msg = inbox.Receive()
// do something with each message as it arrives
}
Run Code Online (Sandbox Code Playgroud)
基于我对F#异步模式的理解,我知道该let!关键字将阻止此行中异步工作流内的代码执行,直到项目在收件箱中可用.
我也知道这个"阻塞"是在没有真正阻塞线程的情况下完成的.
async/await在C#中查看新模式时,完全相同的事情适用于此.当我在await异步方法中使用关键字时,该方法的执行可以在该行"阻塞",并且只允许方法调用"唤醒"并在基础等待任务完成时稍后完成工作.
我想要的是一个关于F#/ C#如何设法"无阻塞地等待"的"执行摘要".
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |