AsyncBuilder.TryFinally<'T> 方法 (F#)

在异步计算中实现 try...finally。

命名空间/模块路径: Microsoft.FSharp.Control

程序集:FSharp.Core(在 FSharp.Core.dll 中)

// Signature:
member this.TryFinally : Async<'T> * (unit -> unit) -> Async<'T>

// Usage:
asyncBuilder.TryFinally (computation, compensation)

参数

  • computation
    类型:Async<'T>

    输入计算。

  • compensation
    类型:unit -> unit

    要在 computation 完成或引发异常后(包括取消)运行的操作。

返回值

一个异步计算,执行计算并在随后或在引发异常时执行补偿。

备注

创建一个运行 computation 的异步计算。 无论 computation 是正常退出还是由于异常而退出,都会在 computation 完成后执行操作 compensation。 如果 compensation 本身引发异常,则将丢弃原始异常,而新异常将成为计算的总体结果。

在执行计算时执行取消检查。 此方法的存在使得能够在 async { ... } 计算表达式语法中使用 try...finally。

平台

Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2

版本信息

F# 运行时

受以下版本支持:2.0、4.0

Silverlight

受以下版本支持:3

请参见

参考

Control.AsyncBuilder 类 (F#)

Microsoft.FSharp.Control 命名空间 (F#)