我在C#中试图按顺序启动多个进程,但遇到了一些问题。这些进程花费大约30秒左右来完成它们的过程,我不想让它们从任何应用程序中窃取焦点。我尝试了两种方法(以下代码都在循环语句中):
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = "References\\InclinacaoHGrid.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.Arguments = i.ToString() + " " + j.ToString() + " " +
valA + " " + valS + " " + valP + " " + pathNodes;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
myProcess.EnableRaisingEvents = true;
myProcess.Exited += new EventHandler(myProcess_Exited);
myProcess.OutputDataReceived += new DataReceivedEventHandler(myProcess_OutputDataReceived);
myProcess.Start();
myProcess.WaitForExit();
使用Interaction.Shell并设置参数"AppWinStyle.MinimizedNoFocus":
int pid = Interaction.Shell("References\\InclinacaoHGrid.exe " + i.ToString() + " " + j.ToString() + " " +
valA + " " + valS + " " + valP + " " + pathNodes, AppWinStyle.NormalNoFocus,true);
这两种方法对我不起作用,因为进程(或启动和结束进程的操作)会窃取焦点。当我的应用程序运行时,我无法做任何事情。