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