异步CTP和超时

本文关键字:超时 CTP 异步 | 更新日期: 2023-09-27 17:54:42

我开始看Jon Skeet关于c# Async CTP的演讲。他在指定超时时间时口吃。

由于对f#的接触相当有限,所以有一种直观、集中和简单的方法来指定超时。所以,我想知道目前的情况是什么:c#异步CTP可以做所有的事情,f#异步块运行器做吗?是否有文件概述差异和限制?


额外的细节:在f#中,异步块运行器提供了一种方法来指定以下内容:

    <
  1. 异常流/gh><
  2. 超时流/gh><
  3. 取消流/gh>
  4. 以上三个特性的可扩展性
下面是在f#中做这些事情的一种方法:参数顺序和右管道操作符

异步CTP和超时

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

组合任务来实现超时是相当容易的:创建第二个任务,它是一个"延迟",然后等待它或原始任务完成。无论哪一个先到达,在可行的情况下取消另一个(使用取消令牌)。新创建的任务完成时,要么显示主操作的结果(如果主操作成功),要么显示"延迟"先完成时的异常。

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