我开始看Jon关于C#异步CTP的介绍。谈到指定超时,他结结巴巴地说了一句。
由于对F#的暴露相当有限,有一种直观、集中和简单的方法来指定超时。因此,我想知道当前的情况是什么: C#异步CTP能够完成F#异步块运行程序所做的所有事情吗?是否有一份概述差异和限制的文件?
其他详细信息:在F#中,异步块运行程序提供了一种指定以下内容的方法:
下面是一种在F#:参数的顺序和管道-右操作符中完成这些事情的方法
发布于 2011-05-05 05:36:09
我甚至不记得提到过超时--但我相信你的话:)
很容易组合任务来实现超时:创建一个“延迟”的第二个任务,然后等待该任务或原始任务的完成。无论哪一个先到达那里,如果可行,就取消另一个(带有取消令牌)。新创建的任务将完成主操作的结果(如果成功的话),如果“延迟”先完成,则为异常。
在AsyncCtpLibrary.dll中,我没有看到任何类似的直接支持,但是您可以通过提供的工具轻松地构建它。您可能需要查看"基于任务的异步模式概述“和"TPL数据流”文档,看看它们是否也涵盖了它。
https://stackoverflow.com/questions/5893026
复制相似问题