Share via


AsyncBuilder.TryFinally<'T> Method (F#)

Implements try...finally in asynchronous computations.

Namespace/Module Path: Microsoft.FSharp.Control

Assembly: FSharp.Core (in FSharp.Core.dll)

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

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

Parameters

  • computation
    Type: Async<'T>

    The input computation.

  • compensation
    Type: unit -> unit

    The action to be run after computation completes or raises an exception (including cancellation).

Return Value

An asynchronous computation that executes computation and compensation aftewards or when an exception is raised.

Remarks

Creates an asynchronous computation that runs computation. The action compensation is executed after computation completes, whether computation exits normally or by an exception. If compensation raises an exception itself the original exception is discarded and the new exception becomes the overall result of the computation.

A cancellation check is performed when the computation is executed. The existence of this method permits the use of try...finally in the async { ... } computation expression syntax.

Platforms

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

Version Information

F# Runtime

Supported in: 2.0, 4.0

Silverlight

Supported in: 3

See Also

Reference

Control.AsyncBuilder Class (F#)

Microsoft.FSharp.Control Namespace (F#)