繁体   English   中英

C#System.Diagnostics.Process:确定C ++编译过程花费了多少时间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM