下面的工序有什么区别?
本文关键字:什么 区别 | 更新日期: 2023-09-27 18:05:47
这个过程是"独立"运行从我的应用程序。我可以使用我的表单同时脚本正在运行,而不是等待退出。
string strCmdText = "some command line script";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
这一个虽然停止进程在我的形式,直到命令行窗口被关闭:
Process p = new Process();
p.StartInfo.Verb = "runas";
p.StartInfo.FileName = cmd.exe;
p.Start();
对我来说,两者似乎是相同的process.start()
。那么区别是什么呢?
它们非常相似,但并不等同于。
Process.Start
方法是如何实现的;
public static Process Start(string fileName, string arguments)
{
return Start(new ProcessStartInfo(fileName, arguments));
}
new ProcessStartInfo(fileName, arguments)
构造函数将第二个参数设置为参数字符串,该字符串是ProcessStartInfo.Arguments
属性而不是Verb
属性。同时,
public static Process Start(ProcessStartInfo startInfo)
{
Process process = new Process();
if (startInfo == null) throw new ArgumentNullException("startInfo");
process.StartInfo = startInfo;
if (process.Start()) {
return process;
}
return null;
}
你可以从它的文档中看到;
重载将资源与新的
Process
组件关联。如果进程已经在运行,没有启动其他进程。相反,现有的进程资源被重用,没有新的Process
组件已创建。在这种情况下,而不是返回一个新的Process
组件,Start
返回null
给调用过程。