Use*_*384 -2 c# multithreading timer
刚才有一些关于计时器和线程的混淆,见下面的例子,两个代码都提供了相同的结果(每隔60秒进行一次检查),所以什么时候应该使用计时器?何时我应该使用线程处理作业提供相同的结果?
使用线程:
Thread checkJob = new Thread(checkStatus);
checkJob.Start();
protected void checkStatus()
{
//Do Checking here
Thread.Sleep(60000);
}
Run Code Online (Sandbox Code Playgroud)
使用计时器:
public Form1()
{
InitializeComponent();
Timer time = new Timer();
time.Interval = 60000;
time.Tick += time_Tick;
time.Enabled = true;
}
void time_Tick(object sender, EventArgs e)
{
//Do Checking here
}
Run Code Online (Sandbox Code Playgroud)
如果定期执行的任务非常短,并且不会妨碍计时器运行的线程的处理,那么计时器是一个合理的选择.
另一方面,如果周期性任务需要花费大量时间,并且您不能让主线程中断执行它,那么单独的专用线程是一个不错的选择.