我怎么知道这个特定的线程是否还在服务器上运行

本文关键字:服务器 运行 是否 线程 我怎么知道 | 更新日期: 2023-09-27 18:11:39

我在ASP中使用一个线程。Net应用程序每2小时在后台运行一次,使用c#见下面的代码,但我的问题是我怎么能知道如果这个特定的线程还在服务器上运行??注意:我使用的是Windows server 2008 R2标准版

 // Create runner Thread and start it 
     System.Threading.Thread OrderStatusFromThread = new       System.Threading.Thread(new System.Threading.ThreadStart(OrderStatusChange));
        OrderStatusFromThread.IsBackground = true;
        OrderStatusFromThread.Name = "OrderStatusFromThread";
        OrderStatusFromThread.Start();
    }
   static void OrderStatusChange()
    {
        while (!ShutDown)
        {
          System.Threading.Thread.Sleep((1000 * 60)*10);               
          UpdateOrderStatusFromAPI();         
        }
    }

我怎么知道这个特定的线程是否还在服务器上运行

可以在线程上使用Join(int timeout)函数。

if(OrderStatusFromThread.Join(1000))
{
    //Thread has terminated
}
else
{
    //Thread is still running.
}

加入文档:http://msdn.microsoft.com/en-us/library/6b1kkss0(v=vs.100).aspx

编辑新信息后:

你可以记录线程的ID,或者使用它的名字,用ProcessExplorer之类的东西来验证它是否还在运行。此外,该工具不需要安装,它只是一个exe。