1 c#
我们有一个小的C#启动应用程序,用户启动它从网络共享运行我们的主要C#WinForms应用程序的最新版本.这是一种简化的ClickOnce安排(我们的IT人员不允许我们使用ClickOnce).
启动应用程序在调用Process.Start("MainApplication.exe")后退出,但主应用程序可能需要几秒钟才能显示,使用户留下空白屏幕.
是否有一种方法可以让starup应用程序轮询操作系统,以确定主应用程序在退出之前是否正在运行?或者其他一些方法来处理这个问题?
Jus*_*ner 11
您可以使用Process.WaitForInputIdle()等待应用程序进入空闲状态.
Process appProcess = Process.Start("MainApplication.exe");
appProcess.WaitForInputIdle();
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
...你刚刚开始一个进程并希望使用它的主窗口句柄,考虑使用WaitForInputIdle方法允许进程完成启动,确保已创建主窗口句柄
备注Process.MainWindowHandle属性的部分.
您可以调用Process.GetProcessByName来查看是否已创建新进程.另一个选择是让主应用程序在加载完成后终止它.