在.NET线程上花了多少时间?

Ehs*_*san 7 .net c# multithreading

我有一个带有(4)线程的多线程应用程序我想知道在线程中花费了多少处理时间.我用ThreadPool创建了所有这些线程

线程1做JOB1
线程2做作业2
..
..

结果将是: Thread1
在12毫秒
内运行Thread2在20毫秒内运行

我实际上是在一个作业中下载一个网页,每个作业都在一个线程中处理我想知道网页下载需要多少时间(没有计算时间内其他线程上下文切换的影响)

Mar*_*son 8

我在codeproject上找到了这段代码:

http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx

试试并报告;)


ang*_*son 5

如果你想获得秒表的总时间,那就是秒表类:

Stopwatch sw = Stopwatch.StartNew();
// execute code
sw.Stop();
// read and report on sw.ElapsedMilliseconds
Run Code Online (Sandbox Code Playgroud)

如果要查找线程实际执行代码的时间(而不是等待I/O等),可以通过枚举应用程序的Process对象的线程来检查ProcessThread.TotalProcessorTime属性.

请注意,线程池中的线程在使用后不会被销毁,而是留在池中以供重用,这意味着线程的总时间包括它在当前工作负载之前完成的所有操作.