gpt4 book ai didi

c# - 为什么 .NET 中有 5 个版本的定时器类?

转载 作者:IT王子 更新时间:2023-10-29 03:44:34 24 4
gpt4 key购买 nike

为什么.Net框架中有五个定时器类,分别是:

  1. System.Timers.Timer
  2. System.Threading.Timer
  3. System.Windows.Forms.Timer
  4. System.Web.UI.Timer
  5. System.Windows.Threading.DispatcherTimer

为什么有多个版本的 Timer 类?它们之间有什么区别?

最佳答案

下面是对主要计时器的描述以及我认为最值得注意的要点。

Winforms.Timer

  • 在 UI 线程上滴答
  • 滴答延迟到 UI 线程空闲为止
  • 如果 UI 线程忙碌到足以让多个 ticks 堆积起来,将跳过 ticks

DispatcherTimer

  • 在 UI 线程上调用
  • 可以设置生成报价所需的“空闲”级别的优先级
  • 如果它们堆积起来将跳过滴答声

Threading.Timer

  • 在线程池中的工作线程上打勾——没有指定线程的选项
  • ticks 总是按时触发
  • 没有一个被跳过 - 当你还在处理之前的报价时,你必须防止新的报价
  • 未处理的异常将使应用程序崩溃

Timers.Timer

  • 包装线程计时器
  • 在从 CLR 线程池中获取的工作线程上滴答
  • 可以通过提供 SynchronizationObject 来强制在特定线程上打勾
  • ticks 总是按时触发
  • 没有被跳过
  • 默默地吃掉异常(exception)情况

关于c# - 为什么 .NET 中有 5 个版本的定时器类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com