c#中线程的存活时间

本文关键字:时间 线程 | 更新日期: 2023-09-27 18:07:10

是否有任何方法可以验证Thread存活多长时间?

我想知道我的System.Threading.Thread.CurrentThread在ASP中的存活时间。网络页面。

c#中线程的存活时间

在IIS工作线程被回收或服务器被重新启动/关闭之前,线程将一直处于活动状态。这个线程将被重用来处理更多的请求,所以线程的生命周期不能用来确定处理一个请求需要多长时间(我怀疑你真的想知道)。

此外,一个请求可以由不同的线程处理。在页生命周期的某些时刻,执行可以由另一个线程接管。

所以,线程存活了多长时间与ASP无关。网络页面。

当然没有直接的方法可以做到…

但是你可以这样做:

  • Process.GetCurrentProcess().Threads
  • 获取当前ProcessProcessThreadCollection
  • 调用GetCurrentThreadId (pinvoke,因为你需要本地线程ID!)
  • 遍历这个集合并通过ID
  • 找到当前线程
  • 访问找到的ProcessThread.StartTime以获得当前线程的开始时间

这给你DateTime…你可以用DateTime.Now减去它得到TimeSpan…在那里你可以访问Ticks