7

我开始观看Jon Skeet 关于 C# Async CTP 的演讲。在指定超时时,他结结巴巴。

由于对 F# 的接触相当有限,因此有一种直观、集中且简单的方法来指定超时。所以,我想知道目前的情况是什么:C# Async CTP 可以做 F# async block runner 做的所有事情吗?是否有概述差异和限制的文件?


其他详细信息:在 F# 中,异步块运行器提供了一种指定以下内容的方法:

  1. 异常流
  2. 超时流程
  3. 取消流程
  4. 上述三个特性的可扩展性

这是在 F# 中执行这些操作的一种方法: 参数顺序和管道右操作符

4

1 回答 1

3

我什至不记得提到超时 - 但我会相信你的话:)

组合任务来实现超时是相当容易的:创建第二个“延迟”任务,然后等待该任务或原始任务完成。无论哪个先到达,如果可行,取消另一个(使用取消令牌)。新创建的任务将完成主操作的结果(如果成功),或者如果“延迟”首先完成,则会出现异常。

我没有看到AsyncCtpLibrary.dll 中直接支持的任何东西,但是您可以通过提供的工具相当容易地构建。您可能想查看“基于任务的异步模式概述”和“ TPL 数据流”文档,看看它们是否也涵盖了它。

于 2011-05-05T05:36:09.490 回答