ベースの非同期パターンを実装することによって、非同期機能を与えることを検討します。ベースの非同期パターンは、非同期機能を持つクラスをパッケージ化するための標準的な方法を提供します。モデルで正常に動作します。ベースの非同期パターンを実装する例については、「方法:イベントベースの非同期パターンをサポートするコンポーネントを実装する」を参照してください。コンポーネントが適切である可能性があります。詳細については、「方法:バックグラウンドで操作を実行する」を参照してください。ベースの非同期パターンの機能を示しています。Pattern以下に該当する場合は、イベントベースの非同期パターンの実装を検討します。オブジェクトは必要ありません。クライアントによってビルドされる必要があるということです。モデルを使用して管理したい。model.どの操作も非同期を実装するための候補になりますが、長い待機時間が予想される操作を考慮してください。適切なのは、クライアントがメソッドを呼び出し、完了時に通知を受け取ること以外の介入を必要としない操作です。状態の変更をクライアントに定期的に通知する操作も適しています。対して、次の操作を行います。メソッドを定義します。メソッドと同じパラメーターを受け取ります。method.複数の呼び出しを受け入れます。いう追加のオブジェクト値パラメーターを使用して定義します。これは、メソッドの複数の同時呼び出しを管理するために実行します。ハンドラーに返されます。単純に後で取得するためにユーザーの状態を格納する場所として実行することもできます。メソッドのシグネチャに対して、次の手順を実行します。signature:メソッドと同じクラス内に次のイベントを定義します。これらは、クラス自体の外部に定義される可能性がありますが、同じ名前空間に定義されます。クラスで、フィールドではなくメンバーを読み取り専用プロパティとして公開していることを確認します。バインドを妨げるためです。派生クラスを定義しないでください。インスタンス自体を使用します。型を再利用することはまったく問題ありません。つのメソッドに関連付けられることがないため、メソッド名のような名前の一貫性はなくなります。Cancellationクラスで非同期操作のキャンセルをサポートする場合は、以下に示すようにキャンセルをクライアントに公開する必要があります。点について判断する必要があることに注意してください。cancellation?キャンセルをサポートする非同期操作が、複数の保留中の操作をサポートできるかどうか。パラメーターを受け取り、いずれかの呼び出しが終了するまで待機する前に、複数の呼び出しを許可できるかどうかを意味します。メソッドで使用するシグネチャを決定します。つの非同期メソッドのすべての呼び出しの間だけではなく、オブジェクトに対して呼び出されたすべての非同期メソッドの間で区別できるようにする状態値を慎重に選択する必要があります。ようなデザイン環境でそのメソッドをより簡単に検出できるようにするために、このように決定されています。これにより、関連するメンバーがグループ化され、非同期機能とは無関係の他のメンバーとは区別されます。定義することをお勧めします。CancelAsync.同じクラスに上の表の複数のメソッドを定義しないでください。インターフェイスがわかりにくくなります。methods.これらのメソッドは、通常は直ちに結果が戻り、操作が実際にキャンセルされる場合もキャンセルされない場合もあります。フィールドが含まれます。クライアントはこれを使用して、キャンセルが発生したかどうかを判断できます。occurred.「イベントベースの非同期パターンを実装するための推奨される手順」に説明されているキャンセルのセマンティクスに従ってください。プロパティを公開することを検討してください。メソッドからの例外をキャッチせずに実行されているかどうかを判断できます。セマンティクスに従ってください。Reporting非同期操作の操作中に進行状況を報告することをお勧めします。ベースの非同期パターンには、これを行うためのガイドラインがあります。so.必要に応じて、非同期操作によって発生し、適切なスレッドで呼び出されるイベントを定義します。範囲であることが期待されている整数値の進行状況インジケーターを伝達します。100.このイベントには、次のように名前を付けます。