共用方式為


Async.AsBeginEnd<'Arg,'T> 方法 (F#)

會建立三個函式可以用來實作,.NET Framework 非同步程式設計模型 (APM) 提供非同步計算的。

命名空間/模組路徑: Microsoft.FSharp.Control

組件:FSharp.Core (在 FSharp.Core.dll 中)

// Signature:
static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)

// Usage:
Async.AsBeginEnd (computation)

參數

  • computation
    Type: 'Arg -> Async<'T>

    此函式會產生非同步計算分割成傳統.NET Framework 非同步程式設計模型。

傳回值

包含開始、結束和取消成員的 Tuple。

備註

在.NET Framework 非同步程式設計模型有關的詳細資訊請參閱 非同步程式設計概觀

開始、 結束及取消函式應該通常會發行為 Begin、 與做為前置詞的成員 End,和 Cancel,和使用型別定義為 如下所示。

 let beginAction,endAction,cancelAction =
     Async.AsBeginEnd (fun arg -> computation)
 member x.BeginSomeOperation(arg, callback ,state:obj) =
     beginAction(arg, callback, state)
 member x.EndSomeOperation(iar) = endAction(iar)
 member x.CancelSomeOperation(iar) = cancelAction(iar)

如果非同步計算採用沒有引數、 AsBeginEnd做為 如下所示。

 let beginAction,endAction,cancelAction =
     Async.AsBeginEnd (fun () -> computation)
 member x.BeginSomeOperation(callback, state:obj) =
     beginAction((), callback, state)
 member x.EndSomeOperation(iar) = endAction(iar)
 member x.CancelSomeOperation(iar) = cancelAction(iar)

如果非同步計算花費 AsBeginEnd做為 兩個引如下所示

 let beginAction,endAction,cancelAction =
     Async.AsBeginEnd (fun arg1 arg2 -> computation)
 member x.BeginSomeOperation(arg1, arg2, callback, state:obj) =
     beginAction((), callback, state)
 member x.EndSomeOperation(iar) = endAction(iar)
 member x.CancelSomeOperation(iar) = cancelAction(iar)

在每個的情況下產生的 API 類似其他.NET 語言中使用的和是很有用的方式發佈非同步計算用從其他.NET 語言的元件中。

平台

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.Async 類別 (F#)

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

AsyncCallback

IAsyncResult