次の方法で共有


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 非同期プログラミング モデルの使用法の詳細については、「非同期プログラミングの概要」を参照してください。

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 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

参照

参照

AsyncCallback

IAsyncResult

その他の技術情報

Control.Async クラス (F#)

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