次の方法で共有


Async.FromBeginEnd<'Arg1,'Arg2,'Arg3,'T> メソッド (F#)

Begin/End のペアのアクションについて、CLI API で使用されるスタイルで非同期計算を作成します。

名前空間/モジュール パス: Microsoft.FSharp.Control

アセンブリ: FSharp.Core (FSharp.Core.dll 内)

// Signature:
static member FromBeginEnd : 'Arg1 * 'Arg2 * 'Arg3 * ('Arg1 * 'Arg2 * 'Arg3 * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * ?(unit -> unit) -> Async<'T>

// Usage:
Async.FromBeginEnd (arg1, arg2, arg3, beginAction, endAction)
Async.FromBeginEnd (arg1, arg2, arg3, beginAction, endAction, cancelAction = cancelAction)

パラメーター

  • arg1
    型: 'Arg1

    操作の第 1 引数。

  • arg2
    型: 'Arg2

    操作の第 2 引数。

  • arg3
    型: 'Arg3

    操作の第 3 引数。

  • beginAction
    型: 'Arg1 * 'Arg2 * 'Arg3 * AsyncCallback * obj -> IAsyncResult

    従来の CLI の非同期操作を開始する関数。

  • endAction
    型: IAsyncResult -> 'T

    従来の CLI の非同期操作を完了する関数。

  • cancelAction
    型: (unit -> unit)

    キャンセルが要求された場合に実行されるオプションの関数。

戻り値

指定された Begin/End 関数をラップする非同期計算。

解説

操作を 3 つの引数で修飾する場合は、このオーバーロードを使用する必要があります。たとえば、次のコードでは、Web サービス呼び出しの非同期計算が作成されます。

Async.FromBeginEnd(arg1,arg2,arg3,ws.BeginGetWeather,ws.EndGetWeather)

計算が実行されると、beginFunc が実行され、計算の継続を表すコールバックが渡されます。コールバックが呼び出されると、全体的な結果は endFunc を使用してフェッチされます。

操作が完了するまで待機している間、この計算はキャンセルに応答します。キャンセルが発生し、cancelAction が指定されている場合は cancelAction が実行され、計算は、操作が完了するまで待機し続けます。cancelAction が指定されていない場合は、キャンセルによってすぐに計算が停止され、その後に呼び出されたコールバックは無視されます。

例については、Async.FromBeginEnd<'T> メソッド (F#) を参照してください。

プラットフォーム

Windows 8、Windows 7、Windows Server 2012 で Windows Server 2008 R2

バージョン情報

F# コア ライブラリのバージョン

サポート: ポータブル 2.0、4.0

参照

関連項目

Control.Async クラス (F#)

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