C# 延迟重启应用程序
我想重新启动我的应用程序。使用C# 延迟重启应用程序,c#,winforms,C#,Winforms,我想重新启动我的应用程序。使用Application.Restart()可以正常工作 但我想在这种情况下增加时间延迟,因为它会非常快速地重新启动应用程序,并且我希望重新启动应用程序需要时间 private void lbllaunch_Click(object sender, EventArgs e) { Application.Restart(); } 您可以在添加延迟的方法中添加Thread.Sleep您可以在添加延迟的方法中添加Thread.Sleep,因为我只是假设您根据示例代
Application.Restart()可以正常工作代码>
但我想在这种情况下增加时间延迟,因为它会非常快速地重新启动应用程序,并且我希望重新启动应用程序需要时间
private void lbllaunch_Click(object sender, EventArgs e)
{
Application.Restart();
}
您可以在添加延迟的方法中添加Thread.Sleep
您可以在添加延迟的方法中添加Thread.Sleep
,因为我只是假设您根据示例代码的语法使用windows窗体,Thread.Sleep('time')
应该可以帮您解决这个问题。
如果要使窗口消失,然后在延迟后重新启动,可以尝试使用Form1.Visible=false
,然后在应用程序中使用Sleep方法。restart方法,或将这些方法包括到帮助器函数中,如:
void restartApplication(Form form1)
{
form1.Visible = false;
Thread.Sleep(300);
Application.restart();
}
然后将窗体再次设置为可见。这个解决方案不是很简单
我建议使用多线程。您可以设置另一个线程,关闭应用程序,暂停然后重新启动它。这不会让您的主应用程序处于打开但不工作的奇怪状态
因为我只是根据示例代码的语法假设您正在使用windows窗体,Thread.Sleep('time')
应该可以帮您解决这个问题。
如果要使窗口消失,然后在延迟后重新启动,可以尝试使用Form1.Visible=false
,然后在应用程序中使用Sleep方法。restart方法,或将这些方法包括到帮助器函数中,如:
void restartApplication(Form form1)
{
form1.Visible = false;
Thread.Sleep(300);
Application.restart();
}
然后将窗体再次设置为可见。这个解决方案不是很简单
我建议使用多线程。您可以设置另一个线程,关闭应用程序,暂停然后重新启动它。这不会让您的主应用程序处于打开但不工作的奇怪状态
这是正确的使用方法吗??private void lbllunch_Click(object sender,EventArgs e){Application.Restart();Thread.Sleep(5000)}重新启动应用程序时不要延迟。它会使应用程序停止工作一段时间,而不是重新启动。我不需要关闭应用程序并花时间重新启动它。如果需要,请在主方法的Program.cs中,在Application.Run(newform1())之前代码>调用如果您确实想退出主线程,然后等待一段时间并启动应用程序,则需要一些外部进程来接管控制。您可以启动一些脚本或启动另一个程序,然后退出程序。启动另一个进程而不是作为应用程序的子进程可能会有一些困难。但它应该是可行的,这是正确的使用方法吗??private void lbllunch_Click(object sender,EventArgs e){Application.Restart();Thread.Sleep(5000)}重新启动应用程序时不要延迟。它会使应用程序停止工作一段时间,而不是重新启动。我不需要关闭应用程序并花时间重新启动它。如果需要,请在主方法的Program.cs中,在Application.Run(newform1())之前代码>调用如果您确实想退出主线程,然后等待一段时间并启动应用程序,则需要一些外部进程来接管控制。您可以启动一些脚本或启动另一个程序,然后退出程序。启动另一个进程而不是作为应用程序的子进程可能会有一些困难。但它应该是可行的,您可以使用Thread.Sleep(3)或Task.Delay(3)。3只是采样时间。您可以使用Thread.Sleep(3)或Task.Delay(3)。3只是样本时间。很好的答案,怎么不需要假设,看看这个问题tags@hessamhedieh是的,我错过了;)我猜另一个线程
是指另一个进程
,对吗?@hessamhedieh好吧,它被称为线程
(请参阅我答案中的链接),但基本上它所做的是创建另一个程序实例,该程序执行它自己的东西(模糊的描述)因此,一个线程运行应用程序,另一个线程处理重启。这使您能够获得延迟,而不会实际使应用程序线程无法执行任何操作,在暂停期间,应用程序线程看起来会崩溃,因为只有后台的另一个线程会停止等待timenice的答案,但不需要假设,只需看问题即可tags@hessamhedieh是的,我错过了;)我猜另一个线程
是指另一个进程
,对吗?@hessamhedieh好吧,它被称为线程
(请参阅我答案中的链接),但基本上它所做的是创建另一个程序实例,该程序执行它自己的东西(模糊的描述)因此,一个线程运行应用程序,另一个线程处理重启。这使您能够获得延迟,而不会实际使应用程序线程无法执行任何操作,这在暂停期间看起来会崩溃,因为此时只有后台的另一个线程停止