Process的使用
来源:互联网 发布:想做的事情太多 知乎 编辑:程序博客网 时间:2024/06/05 22:41
首先是ProcessStartInfo的几个重要属性。
1. FileName: 可以是可执行文件的全路径,或者只是文件名(会在PATH的指定路径下面或者WorkingDirectory,或者当前目录去找)
2. UseShellExecute: 是否用外壳去运行该可执行文件,如果是的话,可以运行任何可执行文件(与之相关联的,具有默认打开操作的注册文件类型)。如果是false,则只能用 Process组件启动
3. RedirectStandardOutput: 可以将process的输出重定向到StandardOutput (UseShellExecute必须为False)。
public static void RunMSBuild()
{
Process p = new Process();
p.StartInfo.FileName = "MSBuild.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
Console.WriteLine(p.StandardOutput.ReadToEnd() + p.StartInfo.WorkingDirectory);
p.WaitForExit();
}
上面的代码,如果不重定向,那么MSBUILD的信息会直接输出到当前的控制台。如果重定向,那么在该流读取完成或者关闭前,子进程会一直等待退出。
注意:
不能在ReadToEnd之前调用WaitForExit, 在这种情况下,如果子进程写入足够多的文本填充重定向流,就会产生死锁情况。父进程一直等待子进程退出,而子进程一直等待父进程读取全部StandardOutput流。
- Process的使用
- process类的使用
- process Bar的使用
- Process组件的使用
- android process的使用
- Process类的使用
- android:process的使用
- Process 类的使用
- Process的使用
- java Process类的使用
- java中 Process的使用
- 使用android:process的注意事项
- java中 Process的使用
- process对象方法的介绍,Process.argv的使用
- C#中Process类的使用
- Process类的属性与使用
- (转)c# process类的使用
- JBPM4中sub-process的使用
- SQL 获取当前日期,年、月、日、周、时、分、秒
- iOS中捕获用户的崩溃日志
- Android 扩展OkHttp支持请求优先级调度
- Ubuntu Server MySQL 允许 root 用户远程访问
- document.all[]的用法
- Process的使用
- Android使用HttpClient实现文件上传到PHP服务器,并监控进度条
- java之邮件发送
- Servlet处理客户端HTTP请求
- 区分大小写是自律的一种方式
- JS高级应用:操作模态与非模态对话框
- 计算Java List中的重复项出现次数
- iOS开发-Objective-C与JavaScript交互
- 各种OutOfMemoryError的解决(待补充)