首页 > 解决方案 > C# 计时器不滴答(使用常量值,但如果我使用 DateTime 变量计算值,则不滴答)

问题描述

有一些标题相同的问题,但我的问题不同。这是代码

private void PlayerForm_Load(object sender, EventArgs e)
{
   tmr.Interval = Convert.ToInt32((EndTime - StartTime).TotalMilliseconds);
   //tmr.Interval = 10000;
   MessageBox.Show($"Starting Timer {tmr.Interval}");

   tmr.Tick += Tmr_Tick;
   tmr.Enabled = true;
   tmr.Start();
}

private void Tmr_Tick(object sender, EventArgs e)
{
    MessageBox.Show("Ticker Ticked");
    
}

如果我将间隔设置为 1000,但在计算时间期间它从不滴答作响,则此方法有效....我大部分时间都检查了间隔值,它是一分钟,并且它得到了正确的 60000 毫秒。但不起作用。帮助将不胜感激。

编辑(更新)

情况变化在父表单中有一个 foreach 循环,我观察到的是,如果我使用 form.ShowDialog() Timer Works 调用此表单,但如果我使用 form.Show() 它不知道为什么?:(

标签: c#winformstimer

解决方案


推荐阅读