如何正确使用Process.StartTime运行进程并测量其运行时长
如何正确使用Process.StartTime运行进程并测量其运行时长
嘿,要是你想启动一个外部进程,还得精准算出它的运行时长,估计一开始会写出这样的代码:
var process = Process.Start("test.exe"); process.WaitForExit(); var executionTime = process.ExitTime - process.StartTime; Console.WriteLine($"Execution time: {executionTime.TotalMilliseconds} ms");
看起来是不是简单又直观?但这里其实藏着个容易踩的坑!你可别小瞧了Process.StartTime和ExitTime这俩属性——它们可不是任何时候都能随便调用的。比如如果进程启动失败(返回的process对象是null),或者进程还没完全启动就去访问StartTime,甚至有时候进程退出后相关资源已经被释放,这时候去获取这两个属性都会直接抛出InvalidOperationException异常,搞不好你的程序就直接崩了。
所以稳妥的做法是先做个判断:首先确认Process.Start确实返回了有效的进程对象,然后在调用WaitForExit()之后,再安全地去计算时间差,最好还能给这段逻辑加个try-catch块,把可能出现的异常给捕获处理掉,这样程序的鲁棒性就上来啦。
备注:内容来源于stack exchange,提问作者Serg
相关产品推荐
相关产品推荐

