一个测试用小程序中用了两个timer控件(System.Windows.Forms.Timer)来执行定时任务。其中一个定时器timerA在异步获取到资源后会在这个异步的task(System.Threading.Tasks )中启动执行。日志打印中发现所有的启动条件都满足,但是无论如何都看不到此task执行。

于是翻了翻MSDN,微软对这个控件的定义如下:。也就意味着,如果不是UI线程的话,定时器可能是不会被执行的。

解决办法也就出来了:使用System.Timers命名空间下的Timer。

微软的描述:

System.Timers 。

从上述描述中可以看出,不仅timer控件(System.Windows.Forms.Timer)只能在窗口中使用,而且精度也不能保证,只能用来执行简单的任务。

System.Timers 的timer后,程序运行正常。

 

相关文章:

  • 2021-12-17
  • 2021-07-08
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2022-12-23
相关资源
相似解决方案