我有一个c#wpf应用程序,在main()方法中,我检查某个条件,如果是,我运行一个不同的进程,但是,我需要在一定的超时后启动进程。所以,例如:
override OnStartUp()
{
if(condition == true)
{
ProcessStartInfo p = new ProcessStartInfo("filePath");
p.Start(); // This should wait for like say 5 seconds and then start.
return; // This will exit the current program.
}
}
我可以使用Thread.Sleep()但这会导致当前程序也处于睡眠状态。 换句话说,我希望当前程序立即终止,然后在5秒后启动新进程。
谢谢!
这可能吗?
答案 0 :(得分:4)
如果第一个进程创建第三个程序,该怎么办?第一个程序立即退出,而第三个程序将只是睡5秒,然后将启动第二个程序。
答案 1 :(得分:3)
你有几个选择:
答案 2 :(得分:1)
您可以使用任务计划程序API并设置一次性任务,该任务将在接下来的5秒后启动应用程序.Nice managed wrraper:taskscheduler.codeplex.com
答案 3 :(得分:0)
您需要创建一个新线程。在这个帖子中,您可以使用Thread.Sleep而不会阻止您的程序。
public class MyThread
{
public static void DoIt()
{
Thread.Sleep(100);
// DO what you need here
}
}
override OnStartUp()
{
if(condition == true)
{
ThreadStart myThread = new MyThread(wt.DoIt);
Thread myThread = new Thread(myThread);
myThread.Start();
}
}
答案 4 :(得分:0)