Async.AsBeginEnd<'Arg,'T> メソッド (F#)
指定した非同期計算の .NET Framework 非同期プログラミング モデル (APM: Asynchronous Programming Model) を実装するために使用できる 3 つの関数を作成します。
名前空間/モジュール パス: 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
型: 'Arg ->Async<'T>従来の .NET Framework 非同期プログラミング モデルに分割する非同期計算を生成する関数。
戻り値
begin、end、および cancel をメンバーとするタプル。
解説
.NET Framework 非同期プログラミング モデルの使用法の詳細については、「非同期プログラミング モデル (APM)」を参照してください。
begin、end、および cancel 関数は、通常は 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)
非同期計算で引数が 2 つある場合、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 Framework 言語で使用される API に似ており、他の .NET Framework 言語から使用されるコンポーネントで非同期計算を公開するのに役立ちます。
プラットフォーム
Windows 8、Windows 7、Windows Server 2012 で Windows Server 2008 R2
バージョン情報
F# コア ライブラリのバージョン
サポート: ポータブル 2.0、4.0