gpt4 book ai didi

c# - 哪个 C# 定时器?

转载 作者:行者123 更新时间:2023-11-30 22:09:29 25 4
gpt4 key购买 nike

我正在编写一个包含计时器的类(重要的是它可能不会初始化为 0,它可能已经开始计时),并且该类将包含启动、暂停、恢复和停止/完成的方法。我知道我可以使用 C# 中的许多计时器,即 System.Timers.Timer,但是我不确定这个计时器是否允许我以预定义的经过数字启动计时器。

什么是最适合这种情况的?

最佳答案

不要使用 System.Windows.Forms.Timer - 这将在表单的 UI 线程上运行委托(delegate),这可能不是您想要的。

System.Timers.Timer派生自 System.ComponentModel.Component,因此它面向设计界面。

System.Threading.Timer最适合线程池上的后台任务。

System.Threading.Timer 满足您的所有要求(假设您尝试在线程池上运行委托(delegate)。

public void MyCallback(object o) { ... }
int timeToStart = 1000;
int period = 2000;

//fire the delegate after 1 second, and every 2 seconds from then on
Timer timer = new Timer(MyCallback, null, timeToStart, period);

//pause
timer.Change(Timeout.Infinite, Timeout.Infinite);

//resume
timer.Change(timeToStart, period);

//stop
timer.Dispose();

关于c# - 哪个 C# 定时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21547980/

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