4

こんにちは、C# を使用してイベント ベースの非同期パターンを実装したいと考えています。以下の Microsoft のドキュメントは非常に役に立ちますが、実装の詳細が省略されているのは当然のことです。

http://msdn.microsoft.com/en-us/library/ms228969.aspx

このパターンを実装するためのオプションは何ですか? Delegate.BeginInvoke、ThreadPool.QueueUserWorkItem、new Thread()、BackgroundWorker クラスなどを使用する必要がありますか?

シンプルなコード ライブラリを作成しています。Windows フォーム、コンソール アプリ、または ASP.NET コンテキストで使用できる必要があります。

サンプルコードを見るのは素晴らしいことです。

4

2 に答える 2

4

イベントベースの非同期パターンを実装する場合は、 AsyncFuncが最も簡単な方法です。

このパターンを劇的に簡素化します。ThreadPools、Threads、または BackgroundWorkers について気にする必要はありません。AsyncFunc がすべてを処理します。さらに、このアプローチにより、ビジネス ロジックをパターン固有の実装から分離できるため、テスト容易性が向上します。

http://asyncfunc.codeplex.com

MSDN 推奨の方法と同じコンポーネントの AsyncFunc 実装の比較を見つけることができます。

MSDN と AsyncFunc の比較

于 2011-01-11T04:06:37.730 に答える
1

その記事のこのセクションを読んでください。

http://msdn.microsoft.com/en-us/library/9hk12d4y.aspx

そうは言っても、使用する必要がある手法はアプリケーションによって異なることをお勧めします。したがって、これらの非同期操作が何を行うのか、どのくらいの頻度で呼び出されるのか、どのような状況で呼び出されるのかについての詳細がなければ、私は与えることができませんあなたの状況で使用するのに最適なテクニックについての推奨事項。

于 2010-11-18T13:22:28.200 に答える