如何在c#中检查任务状态

Vin*_*uet 3 c# multithreading task

我想知道如何检查 C# 中异步任务的状态。我有一个保存方法来保存用户,我想运行后台任务来在保存后更新它们。

我使用框架 4.0,这是我开始任务的代码

 System.Threading.Tasks.Task task = null;
 task = System.Threading.Tasks.Task.Factory.StartNew(() =>
       {                   
             beginTask();
       });
Run Code Online (Sandbox Code Playgroud)

我的问题是任务需要一些时间才能结束(接近 7 分钟),因此如果有人进行多次用户保存,任务会运行多次,所以我想在运行任务之前检查函数 beginTask() 是否已经在运行以避免运行大量后台任务。

谢谢

dan*_*l89 5

也许尝试这样做 - 初始化你的任务对象:

Task task = new Task(begintask);
Run Code Online (Sandbox Code Playgroud)

并添加新方法来运行它,例如:

public void StartTask(Task t)
{
    if (t.Status == TaskStatus.Running)
        return;
    else
        t.Start();
}
Run Code Online (Sandbox Code Playgroud)

当然,您可以根据任务的状态添加更多条件。