2010-09-13 64 views
0
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++源文件花了多少時間?C#System.Diagnostics.Process:確定C++編譯過程耗時多長時間

回答

2

您可以使用WaitForExit函數來等待進程與Stopwatch類一起退出以測量花費的時間。這會導致您有一個線程等待進程退出。

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

謝謝!這正是我所期待的。 – Alex 2010-09-13 10:55:12

1

進程異步運行到其他進程,但不等它完成。當您的日誌調用返回時,該過程仍可能會失控。