【发布时间】:2018-02-03 09:14:52
【问题描述】:
我有一个 winforms 应用程序,我在其中循环运行一个进程(代码如下所示)。假设我有 10 个项目,我得到 10 个运行操作的命令窗口。所以,我想知道是否有一种方法可以让我运行该进程 10 次,但只打开一个命令窗口来运行我的所有操作。
Process p = new Process();
try
{
var pInfo = new ProcessStartInfo(executable, args);
pInfo.UseShellExecute = false;
pInfo.RedirectStandardOutput = true;
pInfo.RedirectStandardError = true;
pInfo.WorkingDirectory = workingDir;
p.StartInfo = pInfo;
p.EnableRaisingEvents = true;
SubscribeEvents(p);
p.Start();
p.WaitForExit();
}
【问题讨论】:
-
您可以隐藏所有窗口,但您可能想打开另一个窗口,以便至少显示一些内容?
-
或者您可以像批处理文件一样执行此操作,但是所有操作将一次运行一个,而不是同时运行。
-
@Derek 是的,我只想打开一个窗口。这样我就不会被多次弹出并抓住焦点使我的计算机无法使用,直到所有进程完成。
-
如果你从你的视图代码中分离上面的 sn-p,那么你可以制作一个不同的视图,例如一个用户控件,它显示一个进程的数据并在一个单一的窗口中使用一个或多个.
-
pInfo.CreateNoWindow = true;
标签: c# winforms process command-prompt