2012-11-23 26 views
3

我需要能够检查,如果一个特定的任务正在运行:C#检查,如果任务运行

  Task.Run(() => 
       { 
        int counter = 720; 
        int sleepTime = 7000; 
        int operationId = 0; 
        Thread.CurrentThread.Name = "GetTasksStatusAsync"; 
...... 

所以在我的代码某处另一个类,我需要检查“GetTasksStatusAsync”正在运行。 感谢

回答

3

如何

Task t = Task.Run(() => ...); 

if(t.Status.equals(TaskStatus.Running)) 
{ 
    //task is running 
} 

基本上,我会在一些地方保存我的任务,并让其他类访问。然后你可以用上面的代码检查任务的状态。请参阅TaskStatus-Documentation

+0

作品!谢谢!! – ShaneKm

+0

我认为这样更完整:'if(t.IsCompleted == false && t.Status!= TaskStatus.Running && t.Status!= TaskStatus.WaitingToRun && t.Status!= TaskStatus.WaitingForActivation)''开始(再次开始读取)在if块内再次开始。 – Kjellski

1

这是我工作的。

Task t = Task.Run(() => ...); 

if(t.IsCompleted.Equals(false)) // or if(t.Status.Equals(TaskStatus.WaitingForActivation) 
{ 
}