1

Action<T>非同期メソッドのコールバックを使用するWebAPIクライアントをラップするWPFアプリのサービスレイヤーを作成しています。Taskとにかくメソッドをラップする必要があるので、コールバックを公開するのではなく、サービスレイヤーのラッパーメソッドを.NET4.5の新しいベースの非同期パターンに準拠させることを検討していましたAction<T>

現在、ベースの非同期の差し迫った必要性はTaskありませんが、必ずしもコールバックを維持する必要がある理由はなく、ラッピングは十分に簡単に思えます(ここで説明します)。下位互換性は問題ではありません。とは言うものの、タスクラッピングへのそのようなコールバックに落とし穴がある場合Action<T>、私は現状を維持します。

4

1 に答える 1

3

これを行うことで落とし穴は見られません。実際、アプリケーションを開いて、より柔軟なシナリオを割り当てることができます。また、「コールバック」シナリオの一部をオブザーバーパターン( MicrosoftのReactive Extensionsプロジェクトを参照)に変換することも検討することをお勧めします。これは、タスクベースのパターンと組み合わせると、はるかに強力で柔軟性があります。そしてもちろん、C#5.0の新しいasync / await-patternで、新しい新しいタスクベースのパターンを使用できるようになります。

それが役に立てば幸い。

于 2012-08-23T07:32:41.767 に答える