2012-11-23 31 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) 
{ 
}