WinForms:我如何使用定时器在其间隔结束时运行代码,但通过倒计时重置间隔

问题描述:

我试图向表单输出日志,但是我想在5秒的可见性后输出日志。但是如果我在5秒倒计时期间输出另一个日志,我希望将它重置回5秒。WinForms:我如何使用定时器在其间隔结束时运行代码,但通过倒计时重置间隔

I.e.

OutputLog(“message”,“title”);
5..4..3..2..1 ..
ClearLog();

但我可能会遇到这种情况;

OutputLog(“message”,“title”);
5..4 ..
OutputLog(“message2”,“title2”);
5..4..3..2 ..
OutputLog(“message3”,“title3”);
5..4..3..2..1 ..
ClearLog();

同时不停止当前线程。

目前我有下面的内容,但这是一个常数5秒,所以一个日志可能只会出现0.5秒,

Task.Run(async delegate 
{ 
    await Task.Delay(5000); 
    lblLogOutput.Text = ""; 
}); 
+1

只需使用间隔为5000的计时器即可。在OutputLog中停止并启动计时器。当它滴答时,你知道5秒钟过去了。 –

+0

我会检查一下,谢谢。 –

可以使用Stop功能立即开始跟随功能设置为“重启”的计时器。

private void restartTimer() 
{ 
    timer1.Stop(); 
    timer1.Start(); 
} 
+0

我会检查一下,谢谢。 –

+0

你应该提到你正在谈论的_什么类型的“计时器”。目前,OP没有一个 – MickyD