何时使用以及计时器和线程有什么区别?

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)

Dav*_*nan 5

如果定期执行的任务非常短,并且不会妨碍计时器运行的线程的处理,那么计时器是一个合理的选择.

另一方面,如果周期性任务需要花费大量时间,并且您不能让主线程中断执行它,那么单独的专用线程是一个不错的选择.