C# 如何使一段代码每x秒重复一次?

C# 如何使一段代码每x秒重复一次?,c#,.net,winforms,C#,.net,Winforms,我试图让一段特定的代码重复 我希望这样,当我按下一个按钮,它打开一个应用程序,然后关闭它10秒后,只有重新打开它。我相信我必须使用2个计时器,但我仍然不知道应该使用什么代码来设置on timer end或类似的代码来运行指定的代码。如果使单击处理程序异步,则可以使用Task.Delay 如果您不知道如何关闭应用程序,请参阅。如果使单击处理程序异步,则可以使用Task.Delay 如果您不知道如何关闭应用程序,请参阅。@通用理解,谢谢。这似乎是正确的,请使用AutoReset=true的计时器。需

我试图让一段特定的代码重复


我希望这样,当我按下一个按钮,它打开一个应用程序,然后关闭它10秒后,只有重新打开它。我相信我必须使用2个计时器,但我仍然不知道应该使用什么代码来设置on timer end或类似的代码来运行指定的代码。

如果使单击处理程序异步,则可以使用Task.Delay


如果您不知道如何关闭应用程序,请参阅。

如果使单击处理程序异步,则可以使用Task.Delay


如果您不知道如何关闭应用程序,请参阅。

@通用理解,谢谢。这似乎是正确的,请使用AutoReset=true的计时器。需要记住的一件重要事情是,UI是由独立于代码的线程处理的,因此您需要在主窗体中删除一个计时器并使用该计时器。不要在代码中手动创建计时器。需要澄清:您需要在10秒后关闭应用程序,然后立即重新打开,还是在10秒后也打开?“然后又在一个无休止的循环中重来?”安德鲁谢谢你的回答。我需要代码来打开一个外部应用程序,我已经有了这个程序,然后等待10秒,然后关闭,然后立即重新打开。每x秒重复一次的代码在哪里?你说的只是一次,中间有一个延迟。您有关闭应用程序的代码吗?@将军明白了,谢谢。这似乎是正确的,请使用AutoReset=true的计时器。需要记住的一件重要事情是,UI是由独立于代码的线程处理的,因此您需要在主窗体中删除一个计时器并使用该计时器。不要在代码中手动创建计时器。需要澄清:您需要在10秒后关闭应用程序,然后立即重新打开,还是在10秒后也打开?“然后又在一个无休止的循环中重来?”安德鲁谢谢你的回答。我需要代码来打开一个外部应用程序,我已经有了这个程序,然后等待10秒,然后关闭,然后立即重新打开。每x秒重复一次的代码在哪里?你说的只是一次,中间有一个延迟。你有关闭应用程序的代码吗?我会使用Task.DelayTimeSpan.FromSeconds10,那么就很清楚延迟的时间有多长。虽然我同意FromSeconds稍微清晰一些,但我认为指定毫秒数已经足够清晰,不值得创建对象,特别是如果then internal Task.DelayTimeSpan只是一个重载,最终调用毫秒。如果任何开发人员在理解这种方法时遇到困难,我们就有一个更大的问题:我会使用Task.DelayTimeSpan.FromSeconds10,那么就很清楚延迟有多长了。虽然我同意FromSeconds稍微清晰一些,但我认为指定毫秒数已经足够清晰,不值得创建对象,特别是如果then internal Task.DelayTimeSpan只是一个重载,最终调用毫秒。如果任何开发人员在理解这种方法时遇到困难,我们就有一个更大的问题:P
public async void MyButton_Click(object sender, EventArgs 3)
{
    OpenApplication();
    await Task.Delay( 10 * 1000 ); //10,000 milliseconds a.k.a. 10 seconds
    CloseApplication();
    OpenApplication();
}