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