测量C#中线程的执行时间

本文关键字:执行时间 线程 测量 | 更新日期: 2023-09-27 17:59:15

在我的应用程序中,我正在执行一个新的.NET线程,并在该线程中完成一项任务。

我使用Stopwatch来测量执行时间,但Stopwatchs测量操作系统所有线程的执行时间(只计算我的线程的执行速度)。我想要一种方法来测量我创建的线程执行自己的指令所需的时间。

在.NET中有这样的度量方法吗?

测量C#中线程的执行时间

只有在托管代码中才能做到这一点,但您可以PInvoke QueryThreadCycleTime或GetThreadTimes。有一件事需要记住——托管线程和本机线程之间不需要有一对一的关系,但据我所知,这是目前的工作方式。使用Stopwatch,您将始终获得运行的挂钟时间,包括线程挂起的时间。

此代码测量线程的执行时间:

void ThreadMethod() {
    Stopwatch sw = Stopwatch.StartNew();
    SomeActions();
    vat time = sw.Elapsed;
}

在线程中运行该方法,您将获得执行时间。