私は現在System.Timers.Timer
、Oracle Databaseに対して実行される7つのクエリを実行する単一のタイマーを含むC#(これまで実際に使用したことはありません)で何かを書いています。サーバー上で継続的かつ無期限に実行されるように設計されています。
Windows リソース モニターで実行中のプロセスを見ると、スレッド カウントが増加していました。10 秒間隔で、1 時間以内に 230 スレッドに達しました。タイマーが起動するたびに新しいスレッドが作成されると思いますが、何が問題なのか実際にはわかりません。タスクが完了したら、スレッドを明示的に終了する必要はないと思いました。
ただし、最後のクエリが作業を終了した後に a を追加するThread.CurrentThread.Abort()
と、スレッド数は 15 のままです。また、メモリ使用量も大幅に改善されます。
スレッドを中止することは正しいことですか? それは非常に間違っているように感じますが、問題は解決しました。