测量C#中线程的执行时间
本文关键字:执行时间 线程 测量 | 更新日期: 2023-09-27 17:59:15
在我的应用程序中,我正在执行一个新的.NET线程,并在该线程中完成一项任务。
我使用Stopwatch来测量执行时间,但Stopwatchs测量操作系统所有线程的执行时间(只计算我的线程的执行速度)。我想要一种方法来测量我创建的线程执行自己的指令所需的时间。
在.NET中有这样的度量方法吗?
只有在托管代码中才能做到这一点,但您可以PInvoke QueryThreadCycleTime或GetThreadTimes。有一件事需要记住——托管线程和本机线程之间不需要有一对一的关系,但据我所知,这是目前的工作方式。使用Stopwatch
,您将始终获得运行的挂钟时间,包括线程挂起的时间。
此代码测量线程的执行时间:
void ThreadMethod() {
Stopwatch sw = Stopwatch.StartNew();
SomeActions();
vat time = sw.Elapsed;
}
在线程中运行该方法,您将获得执行时间。