現在、System.Threading.Timer を 10 秒間隔で使用しています。タイマーが起動するたびにファイルに書き込む小さなコードを追加しましたが、ほとんどの場合は時間通りに起動しますが、場合によっては (おそらくアプリの残りの部分が購入されている場合)、30 秒間起動に失敗しますまたは 40 秒、すばやく連続して何度も発射します。
.NET 3.5 で使用できる、より信頼性の高いタイマーはありますか?
タイマーは次のように設定されます
Timer someTimer = new Timer(new TimerCallback(SomeMethod), null, 0, 10000);
...そしてコールバックは次のとおりです。
private static void SomeMethod(object state)
ただし、Timer は通常正しく起動するため、これよりも多くのコードを提供することは困難です。大規模なアプリケーション (〜 100,000 行程度) に埋め込まれ、複数のスレッドが左、右、中央で起動されると、タイマーが断続的に起動するのがゆっくりと見え始めます。ThreadPool が使い果たされている可能性があることを示唆する投稿をいくつか見たので、現在、これが私が経験していることであるかどうかを調べています。