我有一个Windows C#应用程序app1,其中通过单击一个按钮,并使用:]启动另一个应用程序app2。
var myProc = Process.Start("app2.exe", myArgs); myProc.WaitForExit();//to wait I finish with app2.exe
这很好用,但是在打开app2时出现两个问题:
因此,即使我单击了app1图标,如何仍将app2放在前面(我不确定app1和app2是完全不同的应用程序)?
对我来说更重要的是,当打开app2时,如何使app1不响应/不保留内存事件?
我有一个Windows C#应用程序app1,通过单击以下按钮来启动另一个应用程序app2:var myProc = Process.Start(“ app2.exe”,myArgs); myProc.WaitForExit(); //等待我...
一种解决方案是,在子进程正在运行的情况下,禁用第一个应用程序的所有窗口。另外,您可以将应用程序的主窗口设置为子应用程序打开的窗口的所有者(子应用程序应显示任何窗口)。
您可以使用
按照Dirk Vollmar的建议禁用表单,但在禁用队列时,也可以对Task.Run()使用async / await来泵送队列。这将导致应用程序在禁用表单时丢弃所有用户输入,而不是在再次启用表单后对其进行排队和处理:
您必须在另一个任务中创建它