1

Timers.Timer オブジェクトのロード機能を判断する合理的な方法があるかどうか疑問に思っていましたか? というか、スレッド機能です。Timer クラスを使用して多数の (数百の) スレッドをスピンアップすることに問題があるかどうかは誰にもわかりませんか?

編集: 作業のために、しきい値チェックを実行し、しきい値を満たす人に基づいてポイントを与える多数のスレッドをスピンアップします。クライアントごとにスレッドをスピンアップし、約 5 分ごとにチェックします。これはサービスであり、サーバーにインストールされるため、Threading.Timer の代わりに Timers.Timer を使用しているのはなぜですか (Timers.Timer は Threading.Timer よりもスレッドセーフであると聞いたからです)。現在、処理する必要があるのは 10 個までのタイマーのみです。将来の負荷の可能性を求めています。この投稿も、使用するタイマーのリファレンスとして使用していました: System.Timers.Timer vs System.Threading.Timer

4

1 に答える 1

3

Timer クラスを使用して多数の (数百の) スレッドをスピンアップすることに問題があるかどうかは誰にもわかりませんか?

各タイマーがプライベートスレッドを作成すると想定しているようです。しかし、そうではありません。タイマー コールバックは、.NET スレッド プールで実行されます。したがって、多くのタイマーを作成すること自体は問題ではありませんが、スレッド プールが処理できる同時作業の量には明らかに制限があります。これは、すべてのタイマーが同時に起動した場合に影響します。

Microsoft は、記事The Managed Thread Poolでスレッド プールに関する一般的な情報を提供しています。

于 2013-10-25T13:52:31.407 に答える