Process的使用
首先是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的使用相关推荐
- 使用Java监控工具出现 Can't attach to the process
问题重现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ➜ jinfo -flags 3032 Attaching ...
- Mr. Process的一生-Linux内核的社会视角 (2)启动
原文地址: http://www.manio.org/cn/startup-of-linux-view-of-society.html 其实这才应该是这一系列文章的第一节,因为这篇文章讲的是盘古开天地 ...
- 【linux】在CentOS7上更改端口号时报错:Job for sshd.service failed because the control process exited with error
1.问题描述 在在CentOS7上更改端口号时报错: Job for sshd.service failed because the control process exited with error ...
- 【Qt】ubuntu14.04.5 qt5.6中使用opencv3.4报错:Using GTK+ 2.x and GTK+ 3 in the same process is not supported
问题描述 ubuntu14.04.5 qt5.6中使用opencv3.4报错: Using GTK+ 2.x and GTK+ 3 in the same process is not support ...
- 守护进程中创建的对象php,在PHP中生成守护进程(Daemon Process)
前两天看到一篇文章<如何使用PHP编写daemon process>,其中对核心代码却没有细说,我又查了一些资料,还看了一本<理解Unix进程>,才搞明白生成守护进程的时候发生 ...
- template.process(root, out)的用法(shiro项目中来的九)
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...
- Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException
异常Log: Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.Process ...
- symfony2 Process 组件的学习笔记
2019独角兽企业重金招聘Python工程师标准>>> 安装 composer require "symfony/process:2.7.1" ##描述 proc ...
- 用计算机的英语造句process,process的用法总结大全
process的意思 n. 过程,工序,做事方法,工艺流程 vt. 加工,处理,审阅,审核 vi. 列队行进 adj. 经过特殊加工(或处理)的 变形:过去式: processed: 现在分词:pro ...
- 关于v$process与v$session中process的理解
v$session有个process字段,V$PROCESS有个SPID字段,这两个字段是不是一个意思呢?是不是都代表会话的操作系统进程呢? 官方文档上的解释: SPID VARCHAR2( ...
最新文章
- GStreamer 1.18.4稳定的错误修复版本
- JAVA基础14-Java接口及其使用
- html掷骰子小游戏,网页实现掷骰子小游戏
- 信号在PCB传播速度SDRAM布线(sdram布线距离主控的距离)
- 数据结构与算法 / 字符串匹配 / BF、PK 算法
- Java利用Jakson实现序列化与反序列化操作
- String类及其构造器和常用方法
- IOS登陆+注册+抽奖+排行榜
- python改文件名_python批量修改文件名、批量修改xml文件的path和filename
- android ui设计当前不同版本的变化,Android 4.0设计规范 十大界面改变
- Jquery第一章基础、过滤、层次选择器第二节1/2
- visibility和hidden
- 翻译:Vim从入门到精通 Mac OS
- 互联网晚报 | 9/28星期三 | 微信退群可选保留聊天记录 ;iPhone 14 Pro被吐槽信号差;​贾跃亭率获1亿美元融资...
- Restlet实战(一)Restlet入门资料及概念
- 华为面试题(笔试,8分钟写出代码)
- 浅谈AI芯片的简要发展历史
- 雪花漂浮php,h5canvas实现雪花飘落的特效代码
- LeetCode 6036. 构造字符串的总得分和
- 怀旧服为什么显示服务器不兼容,《魔兽世界怀旧服》加载出错怎么办 加载出错解决方案...
热门文章
- 利用ArcGIS做一张“三调“土地利用现状图(附三调符号库下载)
- android-实现一个简单的视频弹幕,Android已死
- 计算机启动后花屏然后无信号,电脑开机屏幕显示无信号输入的解决方法
- 黑客们为什么不攻击淘宝?
- python:pygame制作中国象棋
- 第九章(6)--多元函数微分学的几何应用
- Java构建工具:Ant vs Maven vs Gradle
- 智慧灯杆网关的单灯控制与边缘计算功能
- ad禁用计算机账户命令,AD-禁用账户命令 Disable-ADAccount
- c++ 家谱管理系统项目文档