gpt4 book ai didi

.net - 禁用 System.Threading.Timer 的最佳方法

转载 作者:行者123 更新时间:2023-12-04 10:18:50 25 4
gpt4 key购买 nike

我有一个 System.Threading.Timer这将被打开和关闭。我知道关闭计时器的两种方法:

  • 调用 Timer.Change(-1,-1)
  • 处理定时器,并在需要时创建一个新的

  • 就资源和性能而言,哪一个更好?正在调用 Change(-1,-1) CPU加热器?创建计时器是否昂贵?

    最佳答案

    将计时器的到期时间和周期设置为无限以暂时停止操作。

    MyTimer.Change(Timeout.Infinite, Timeout.Infinite);

    要恢复将其更改回正常操作间隔:
    MyTimer.Change(this.RestartTimeout, this.OperationInterval);

    不需要每次都dispose和recreate它,将interval设置为infinite不会浪费和额外的cpu周期。

    在此示例中,值为 this.RestartTimeout表示恢复后计时器的第一个“滴答”运行多长时间,我通常使用 0。

    在我的具体使用中,我通常会切换定时器的到期时间和周期,然后停止定时器作为它的回调的第一行,做定时器工作,然后在最后恢复它。这是为了防止重新进入长时间运行的代码。

    (Timeout.Infite is -1)

    关于.net - 禁用 System.Threading.Timer 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218279/

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