.NETには3つのタイマータイプがあることを認識しています( .NET Frameworkクラスライブラリのタイマークラスの比較を参照)。メインスレッドがビジーの場合、他のタイプがドリフトする可能性があるため、スレッドタイマーを選択しました。これは信頼できるものである必要があります。
タイマーの制御でこのタイマーが機能する方法は別のスレッドに配置されるため、ビジーでないときに親スレッドで完了した作業の開始に合わせて常にチェックすることができます。
コンソールアプリケーションでのこのタイマーの問題は、タイマーが別のスレッドで動作している間、メインスレッドがアプリケーションを閉じるために何もしていないことです。
ループを追加しようとしましたwhile true
が、タイマーが切れるとメインスレッドがビジー状態になります。