我已经使用时间跨度为计时器设置了一个时间间隔,但希望它更频繁地触发
I have set up an interval for timer using timespan, but want it to fire more frequently
我已经这样设置了我的计时器并且它工作正常。但是我需要间隔更频繁地触发,以便时钟倒计时更快(因为用户等待计时器实时倒计时是不合适的,因为它是一个模拟)。我希望我已经适当地解释了它,请问您是否有任何问题。任何帮助将不胜感激!
System.Windows.Forms.Timer timer;
TimeSpan countdownClock = TimeSpan.Zero;
private void Form1_Load(object sender, EventArgs e)
{
timer = new System.Windows.Forms.Timer(); //Initialise timer
timer.Interval = (int)TimeSpan.FromSeconds(1).TotalMilliseconds;
timer.Tick += OnTimeEvent;
DisplayTime();
}
private void DisplayTime()
{
lblTime.Text = countdownClock.ToString(@"hh\:mm\:ss"); //Define timer
}
private void OnTimeEvent(object sender, EventArgs e)
{
countdownClock = countdownClock.Subtract(TimeSpan.FromMilliseconds(timer.Interval)); //Set up countdown
if (countdownClock.TotalMilliseconds <= 0)
{
countdownClock = TimeSpan.Zero;
timer.Stop();
Button_Open.Enabled = true;
}
DisplayTime();
}
这里有两件事处理 "time":
- 计时器计时的频率
- 倒计时值减少的速率
您可以通过减少间隔使计时器更频繁地计时:
// the timer will tick 3 times as often
timer.Interval = (int)(TimeSpan.FromSeconds(1).TotalMilliseconds / 3);
计时器的频率不会影响倒计时达到零的速度,因为在计时器的每个刻度上,您都会从倒计时中减去该计时器的间隔。如果你从中减去更多,你可以加快倒计时到零所需的时间:
// countdown will reach 0 three times as fast as it would normally
countdownClock = countdownClock.Subtract(TimeSpan.FromMilliseconds(timer.Interval * 3));
请注意,System.Windows.Forms.Timer
不是很准确,可能不会像您告诉的那样频繁跳动,尤其是当您使用仅几毫秒的间隔时。
我已经这样设置了我的计时器并且它工作正常。但是我需要间隔更频繁地触发,以便时钟倒计时更快(因为用户等待计时器实时倒计时是不合适的,因为它是一个模拟)。我希望我已经适当地解释了它,请问您是否有任何问题。任何帮助将不胜感激!
System.Windows.Forms.Timer timer;
TimeSpan countdownClock = TimeSpan.Zero;
private void Form1_Load(object sender, EventArgs e)
{
timer = new System.Windows.Forms.Timer(); //Initialise timer
timer.Interval = (int)TimeSpan.FromSeconds(1).TotalMilliseconds;
timer.Tick += OnTimeEvent;
DisplayTime();
}
private void DisplayTime()
{
lblTime.Text = countdownClock.ToString(@"hh\:mm\:ss"); //Define timer
}
private void OnTimeEvent(object sender, EventArgs e)
{
countdownClock = countdownClock.Subtract(TimeSpan.FromMilliseconds(timer.Interval)); //Set up countdown
if (countdownClock.TotalMilliseconds <= 0)
{
countdownClock = TimeSpan.Zero;
timer.Stop();
Button_Open.Enabled = true;
}
DisplayTime();
}
这里有两件事处理 "time":
- 计时器计时的频率
- 倒计时值减少的速率
您可以通过减少间隔使计时器更频繁地计时:
// the timer will tick 3 times as often
timer.Interval = (int)(TimeSpan.FromSeconds(1).TotalMilliseconds / 3);
计时器的频率不会影响倒计时达到零的速度,因为在计时器的每个刻度上,您都会从倒计时中减去该计时器的间隔。如果你从中减去更多,你可以加快倒计时到零所需的时间:
// countdown will reach 0 three times as fast as it would normally
countdownClock = countdownClock.Subtract(TimeSpan.FromMilliseconds(timer.Interval * 3));
请注意,System.Windows.Forms.Timer
不是很准确,可能不会像您告诉的那样频繁跳动,尤其是当您使用仅几毫秒的间隔时。