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

时间:2014-07-04 12:24:20

标签: c# asp.net threadpool

我在ASP.Net应用程序中使用一个线程,每隔2小时在backGround中运行一次,使用C# 请参阅下面的代码,但我的问题是我怎么知道这个特定的线程是否仍在服务器上运行? 注意:我使用的是Windows Server 2008 R2 Standard

 // 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();         
        }
    }

1 个答案:

答案 0 :(得分:1)

您可以在线程上使用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。