我想每1秒定期运行一个函数,所以在10秒后执行10次.最简单的方法是使用这样的循环:
while(true)
{
Thread.Sleep(1000);
function();
}
Run Code Online (Sandbox Code Playgroud)
但这种方法的主要问题是它不会提供任何定期保证.我的意思是如果运行function()需要0.1秒,函数的执行时间将是这样的:0,1.1,2.2,3.3,4.4,...
我记得,在实时语言ADA中,我们有一个函数sleep-until(#time).现在我正在寻找C#的替代品.
任何示例代码都将被使用.
我希望tick事件在每小时完成时完全触发.对于例如,它应该打勾8 am然后9 am再对10 am等,这是简单,我需要设置Interval到3600000.
这里的问题是我应该如何确定何时启动计时器?我正在创建一个工具,从用户登录时开始在系统托盘中运行.