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() 是否已经在运行以避免运行大量后台任务。
谢谢
也许尝试这样做 - 初始化你的任务对象:
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)
当然,您可以根据任务的状态添加更多条件。