3초마다 쓰레드 상태를 체크해 비정상종료시 알려주는 코드이다.
public async Task CheckingTask(Task ProjectPath)
{
Task task = ProjectPath;
bool pass = false;
while (!pass)
{
if (task.Status == TaskStatus.WaitingForChildrenToComplete)
{
Console.WriteLine("Task is running...");
}
else if (task.Status == TaskStatus.Faulted)
{
MainVM.Instance.ErrorMsgShow("해당 작업에 실패하였습니다.", "실패");
//MainVM.Instance.ErrorMsgShow(task.Exception.InnerException.Message, task.Exception.Message); 디버그용
pass = true;
}
else if (task.Status == TaskStatus.WaitingForActivation)
{
Console.WriteLine("Task is running...");
}
else if (task.IsCompleted)
{
pass = true;
}
await Task.Delay(3000);
}
}