次のコードが与えられると、ユーザーがキーを押すまでタイマーはPrintTimer関数を1秒ごとに起動します。C# - Timerのインスタンスはいつ殺されますか?
質問1>タイマーはいつ停止するのですか? タイマーはデフォルトでバックグラウンドスレッドであるため、フォアグラウンドスレッドが終了した後に強制終了されます。
質問2>プログラムでスレッドを呼び出すスレッドを停止する方法はありますか。
class Program
{
// continue to call this function until the user presses a
// key to terminate the application
static void PrintTime(object state)
{
Console.WriteLine("Time is: {0}",
DateTime.Now.ToLongTimeString());
}
static void Main(string[] args)
{
TimerCallback timeCB = new TimerCallback(PrintTime);
System.Threading.Timer t = new Timer(
timeCB,
null,
0,
1000);
Console.WriteLine("Hit key to terminate...");
Console.ReadLine();
}
}
私は非常に多くの選択肢(Dispose、Close、Stop)を使用します。 -xx – q0987