我在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();
}
}
答案 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。