开发者社区> 问答> 正文

控制台应用程序中的可靠计时器

我知道在.NET中有三种计时器类型(请参阅.NET Framework类库中的比较计时器类)。我选择了一个线程计时器,因为如果主线程繁忙,其他类型的计时器可能会漂移,因此我需要确保它的可靠性。

此计时器在计时器控制中的工作方式放置在另一个线程上,因此当它不忙时,它始终可以与父线程上的工作一起开始计时。

控制台应用程序中此计时器的问题在于,当计时器在另一个线程上滴答作响时,主线程没有对应用程序执行任何操作。

我尝试添加一个while true循环,但是当计时器关闭时,主线程太忙了。

展开
收起
游客ufivfoddcd53c 2020-01-03 13:39:19 878 0
1 条回答
写回答
取消 提交回答
  • 您可以使用类似的方法Console.ReadLine()来阻塞主线程,因此其他后台线程(例如计时器线程)仍然可以工作。您还可以使用AutoResetEvent阻止执行,然后(在需要时)可以在该AutoResetEvent对象上调用Set()方法以释放主线程。还要确保对Timer对象的引用不会超出范围并不会进行垃圾回收。

    2020-01-03 15:36:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTS控制台一本通 立即下载
从“连接”到“交互” 立即下载
Android内存泄露自动化链路分析组件——Probe 立即下载