locked
关于程序里的计时 RRS feed

  • 常规讨论

  • 之前没怎么在意这个问题,我们采用的是Stopwatch进行的计时。

    现在想问:在进程被阻塞的时候(等待response),stopwatch的计时停止否?用stopwatch在CreateSession后开始计时还是在EndRequests后开始计时能精确得知services.dll里用于计算的函数的执行时间?

    2011年10月25日 12:46

全部回复

  • 计时器一般都由操作系统来完成,所以进程阻塞时不会停止,但Stopwatch是需要手动调用Stop()方法的,所以阻塞时也无法访问计时器。

    如果是Timer的话,每tick一次会引发一个事件,在你添加的事件处理代码里可以写上处理过程,不过这个过程是在另一个线程里执行的。

    要得到计算时间的话,在EndRequests后比较合适。CreateSession只是创建了会话,还没有计算,SendRequests并不是真正的发送请求,只有调用client.Flush()或client.EndRequests()才会开始发送请求。在client.GetResponses()后停止计时,就可以得到计算时间了。

    2011年10月25日 13:34