技术开发 频道

实验分析C#中三种计时器使用异同点


  三、线程计时器(System.Threading.Timer)
  线程计时器也不依赖窗体,是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持。
  对消息不在线程上发送的方案中,线程计时器是非常有用的。
  使用方法如下:
System.Threading.Timer threadTimer; public void ThreadMethod(Object state) { //使用代理 string text = "子线程执行,线程ID:" + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString() + "\r\n"; SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); i++; } private void Form1_Load(object sender, EventArgs e) { threadTimer = new System.Threading.Timer(new System.Threading.TimerCallback(ThreadMethod), null, -1, -1); }
  暂停代码:
  threadTimer.Change(-1, -1);

  实验的效果和基于服务器的计时器(System.Timers.Timer)的第二种方式是一样的,
  当然具体的使用方法和原理是不一样的,最主要的就是这种方式使用的是代理的方式而不是事件的方式,并且可以不依赖于窗体和组件而单独执行

  下面列出老外总结的一张表(三种方式的区别):
0
相关文章