在我的应用程序中,我正在执行一个新的.NET线程,在该线程中我正在完成一项任务。
我使用秒表来测量执行时间,但是秒表测量OS所有线程的执行时间(坚果只是我线程的执行时间)。我想要一种方法来衡量我创建的线程执行自己的指令所花费的时间。
在.NET中有这样的测量方法吗?
答案 0 :(得分:3)
仅在托管代码中无法执行此操作,但您可以PInvoke QueryThreadCycleTime或GetThreadTimes。有一点要记住 - 没有要求托管和本机线程之间必须存在一对一的关系,但据我所知,这是它目前的工作方式。使用Stopwatch
,您将始终获得已用的挂钟时间,包括线程暂停的时间。
答案 1 :(得分:-1)
此代码测量线程的执行时间:
void ThreadMethod() {
Stopwatch sw = Stopwatch.StartNew();
SomeActions();
vat time = sw.Elapsed;
}
在你的线程中运行该方法,你将获得执行时间。