C#System.Diagnostics.Process:确定C ++编译过程需要多长时间

时间:2010-09-13 10:45:05

标签: c# compilation

 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 ++源文件花了多少时间?

3 个答案:

答案 0 :(得分:2)

您可以使用进程中的WaitForExit函数等待进程与Stopwatch类一起退出以测量所花费的时间。这将导致您有一个线程等待进程退出。

Stopwatch watch = Stopwatch.StartNew();
// start process as before
process.WaitForExit();
TimeSpan ts = watch.Elapsed;

答案 1 :(得分:1)

进程与其他进程异步运行,但您不必等待它完成。当您的日志调用返回时,该过程仍可能正在运行。

答案 2 :(得分:1)

看看实现过程。退出事件。

这篇MSDN文章有一个很好的样本:

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exittime.aspx