sea*_*nr8 4 .net c# fork process exec
我正在开发一个需要调用外部程序的程序,但需要等待它执行.这是在C#中完成的(我是全新的,但在C++,Qt和C方面有很多经验)并且CreateProcess似乎不是我正在寻找的(启动过程,然后忘记它,我不需要).
这是我的第一个Windows项目之一(或者至少只有Windows,当然只有.NET),而且我更习惯于为*nix做这类事情,我会在子项中使用fork然后执行exec,然后等孩子终止.但我不知道在哪里开始寻找这样的事情.
哦,我很确定我被困在.NET中,因为我需要读取访问注册表来完成这个项目,.NET的注册表访问绝对是惊人的(在我看来,我没有任何东西可以将它与).
谢谢.
你可以使用这Process门课.它允许您指定有关如何执行它的一些选项,还提供了一种在执行下一个语句之前等待进程退出的方法.
看看这个链接(msdn参考):http: //msdn.microsoft.com/fr-fr/library/system.diagnostics.process.aspx
基本上你可以做的是:
Process p;
// some code to initialize it, like p = startProcessWithoutOutput(path, args, true);
p.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
初始化进程的一个例子(这只是我曾在某处使用的一些代码):
private Process startProcessWithOutput(string command, string args, bool showWindow)
{
Process p = new Process();
p.StartInfo = new ProcessStartInfo(command, args);
p.StartInfo.RedirectStandardOutput = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = !showWindow;
p.ErrorDataReceived += (s, a) => addLogLine(a.Data);
p.Start();
p.BeginErrorReadLine();
return p;
}
Run Code Online (Sandbox Code Playgroud)
正如你在这段代码中看到的,你也可以做一些输出重定向,错误重定向......如果你在课堂上挖掘,我想你会很快找到你需要的东西.
| 归档时间: |
|
| 查看次数: |
15971 次 |
| 最近记录: |