C# 线程状态:RanToCompletion 详解
RanToCompletion 指的是一个线程成功完成了其任务并进入了完成状态。在 C# 中,当通过 Task.Run() 或 Task.Factory.StartNew() 方法创建一个任务时,任务可以有不同的状态,包括:
- TaskStatus.Created:任务已创建但尚未启动。
- TaskStatus.WaitingForActivation:任务正在等待被激活。
- TaskStatus.WaitingToRun:任务已被激活但尚未开始执行。
- TaskStatus.Running:任务正在运行。
- TaskStatus.WaitingForChildrenToComplete:任务正在等待其子任务完成。
- TaskStatus.RanToCompletion:任务成功完成。
- TaskStatus.Canceled:任务被取消。
- TaskStatus.Faulted:任务发生错误。
当一个任务成功完成并进入了 'RanToCompletion' 状态时,意味着任务的执行成功且没有发生任何错误。可以使用 Task.Status 属性来获取任务的当前状态,例如:
Task<int> task = Task.Run(() => {
// 任务执行的代码
return 42;
});
// 等待任务完成
task.Wait();
if (task.Status == TaskStatus.RanToCompletion) {
Console.WriteLine('任务执行成功');
} else {
Console.WriteLine('任务执行失败');
}
上述代码中,当任务成功完成时,将打印 '任务执行成功'。
原文地址: https://www.cveoy.top/t/topic/l8VB 著作权归作者所有。请勿转载和采集!