bool elapsed = false;
private void timerElapsed(object sender, System.Timers.ElapsedEventArgs e)
{
elapsed = true;
}
private void WorkerThreadFunction()
{
Timer _timer = new System.Timers.Timer(60000);
_timer.Elapsed += timerElapsed;
_timer.AutoReset = false;
while (!elapsed)
{
// Do something...
Thread.Sleep(50);
}
}
グローバル変数「経過」はどのように反応しますか?より多くの別々のWorkerThreadをタイマーで実行することは可能ですか?異なるスレッドで同時にタイマーを増やす
内からグローバル変数にアクセスする必要がないのであれば、あなたは実際にもちょうど、ストップウォッチを使うだろうか?別々のWorkerThreadsの問題はどこにありますか?もちろん、あなたは複数を持つことができます。 – JeffRSon
はい、ただし、timerElapsedによってブール変数がtrueに設定されている場合はどうなりますか?他のWorkerThreadsはどのように反応しますか?そこにはまだ「偽」ですか? – xileb0
もちろんです。すべてのスレッドに独自の「経過」があることを確認する必要があります。さらに、「揮発性」について読む。 – JeffRSon