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

时间:2014-04-20 13:04:31

标签: c#

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

我使用秒表来测量执行时间,但是秒表测量OS所有线程的执行时间(坚果只是我线程的执行时间)。我想要一种方法来衡量我创建的线程执行自己的指令所花费的时间。

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

2 个答案:

答案 0 :(得分:3)

仅在托管代码中无法执行此操作,但您可以PInvoke QueryThreadCycleTimeGetThreadTimes。有一点要记住 - 没有要求托管和本机线程之间必须存在一对一的关系,但据我所知,这是它目前的工作方式。使用Stopwatch,您将始终获得已用的挂钟时间,包括线程暂停的时间。

答案 1 :(得分:-1)

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

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

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