1
3
对于begin/endgetdilbert()方法,可以使用
也见 http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse.aspx |
2
4
把这件事搞好有点像噩梦。您需要创建回调来传递到每个“begin”方法,然后运行该方法的“continue”。(别忘了确保所有异常处理和完成的同步逻辑都是正确的!)当你在今天的C中写下这篇文章时,你的代码会变成一堆毫无希望的意大利面,但这是你实现目标的唯一方法(不让线程阻塞I/O等待)。 另一方面,如果这是你处境的原因, F# 使这非常简单和直接的作者正确。见 this video (也就是说,从52:20开始的8分钟)作为概要。 编辑 为了回答丹的评论,这里有一个非常粗略的草图…我从我在Outlook中写的一封电子邮件中提取了它,我怀疑它是编译的。异常路径总是粗糙的,所以要小心(如果抛出cb呢?);您可能希望在C_某处(我不知道在哪里,我确信一定有很多)找到一个可靠的ar/begin/end实现,并将其用作模型,但这显示了要点。问题是,一旦你写了这篇文章,你就会一直拥有它;beginrun和endrun在任何f异步对象上都作为“开始/结束”工作。我们在F bug数据库中有一个建议,在未来的F库版本中,在异步的基础上公开开始/结束APM,以便更容易地使用传统C代码的F异步计算。(当然,我们也在努力更好地使用.NET 4.0中并行任务库中的“task”。)
|
3
2
你可能会发现Jeff Richter的 AsyncEnumerator 简化了很多事情。你可以在电视上看到 PowerThreading 图书馆。 |
4
1
毫无疑问:使用 Concurrency and Coordination Runtime . 它使用了许多上面提到的技术,并将使您的代码比滚动自己的代码更简洁。 |
Coding Dog · Python异步函数不工作。继续跑 1 年前 |
cyka · 强制JavaScript等待单击(循环) 2 年前 |
CodeMonkey · 无法访问React[重复]中的对象值 2 年前 |
Tim · 为异步方法返回列表的最佳方式是什么? 2 年前 |
dapidmini · 未捕获的承诺嵌套异步函数承诺错误处理 2 年前 |