9

私はC#でコンソールアプリケーションをコーディングしていましたが、コードは次のようになりました。

 while(true)
 {
 //do some stuff
     System.Threading.Thread.Sleep(60000)
 }

「スリープ」中のアプリケーションのメモリ使用量が約14kであることに気付きました。しかし、その後、System.Windows.Formsを参照し、代わりにタイマーを使用したところ、メモリ使用量が大幅に減少していることに気付きました。

私の質問は、それほど多くのメモリを使用せずに、数秒ごとに何かを実行させる適切な方法は何ですか?

4

2 に答える 2

12

System.Timers.Timerを使用する必要があります

Elapsedイベントを処理し、必要なコードを実行するメソッドを追加します。あなたの場合:

System.Timers.Timer _timer = new System.Timers.Timer();

_timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
_timer.Interval = 60000;
_timer.Enabled = true;

private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
   // add your code here
}

2つの違いに関する良い投稿がありますTimers

于 2013-01-13T16:18:00.450 に答える
4

Timerクラスを使用する必要があります。

複数の組み込みタイマー(、、、)がSystem.Timers.Timerあり、System.Threading.Timer使用するタイマーの要件によって異なります。System.Windows.Forms.TimerSystem.Windows.Threading.DispatcherTimer

この回答を読んで、どのタイマーを使用する必要があるかを把握してください。

以下は興味深い読み物です。
.NETFrameworkクラスライブラリのタイマークラスの比較

于 2013-01-13T16:22:05.380 に答える