[英]C# System.Diagnostics.Process: determine how much time C++ compilation process took time
Log("Starting to compile...\n");
Process p = new Process();
p.StartInfo.FileName = CompilationCommand;
p.StartInfo.Arguments = SourceFileName;
p.Start();
Log("Compiling finished in " + (p.StartTime - p.ExitTime).Seconds + " seconds\n");
此代码无效。 我如何找出用g ++编译器编译C ++源文件花了多少时间?
您可以在进程中使用WaitForExit函数来等待进程与Stopwatch类一起退出,以测量花费的时间。 这将导致您有一个线程等待进程退出。
Stopwatch watch = Stopwatch.StartNew();
// start process as before
process.WaitForExit();
TimeSpan ts = watch.Elapsed;
进程与其他进程异步运行,但是您不必等待它完成。 在您的Log调用返回时,该过程可能仍在运行。
看一下实现process.Exited事件。
此MSDN文章有一个很好的示例:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exittime.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.