目前我有一个 timercallback,它每 100 毫秒调用一次 autoRing 函数来检查是否满足条件(适当的分钟和秒),如果满足,它将调用函数 btnSound_click(响铃)
问题是,我希望铃声只响一次(然后自动再次响起,但我需要的响铃之间的时间是 30 秒或更长时间),但问题是 autoRing 被多次调用并且铃声响了多次1 秒时间范围。
所以我按下按钮,这段代码被执行:
timerSound = new Timer(new TimerCallback(autoRing), null, 0, 100);
和我的自动响铃功能:
private void autoRing(Object obj)
{
TimeSpan ts = timeWatch.Elapsed;
if (ts.Minutes == bellMinutesFirst && ts.Seconds == bellSeconds || ts.Minutes == bellMinutesSecond && ts.Seconds == bellSeconds)
{
btnSound_Click_1(null, null);
}
timeWatch只是一个Stopwatch
类,bellMinutesFirst
//只是常量(整数)。bellSeconds
bellMinutesSecond
我尝试将 timercallback 更改为 1000ms,但有两个问题:
戒指没有像我希望的那样准确。
不一致,有时会听到 2 声响。
任何帮助深表感谢。