1

ネット上では、ファイアアンドフォーゲットパターンの実装方法について非常に異なる意見があります。

ファイアアンドフォーゲットパターンを実装する必要がある場合は、EndInvokeを呼び出さずにBeginInvokeを呼び出すことは問題ではないと言う人もいます。

別のThreadPoolオブジェクトを作成する方が良いと言う人もいます。私の懸念は、ThreadPoolの初期化コストについてです。具体的には、呼び出すメソッドは、オブジェクトをキューに追加してから戻るだけです。

このため、プールにスレッドを作成する方が「高速」ですか、それとも単にメソッドを同期的に呼び出す方が「高速」ですか?プールにスレッドを作成するよりも費用がかかる作業の大まかなしきい値を知りたいです。

これに関するドキュメントはありますか?また、プールでの例外キャッチやその他の制限についてはどうですか?

4

1 に答える 1

2

「プールにスレッドを作成」しないThreadPoolを使用する場合は、既存のスレッドを使用するか、スレッドが使用可能になるまで待ちます。

多くのジョブが待機している場合にのみ、プールは別のスレッドを追加しますが、そのスレッドは十分に活用されます。

タスク(Fx4以降)を使用することをお勧めします。

于 2011-10-03T21:02:29.630 に答える