【发布时间】:2017-03-22 11:35:51
【问题描述】:
我想知道如何在 c# 中检查异步任务的状态。 我有一个保存方法来保存用户,我想在保存后运行一个后台任务来更新他们。
我在框架 4.0 中,这是我开始任务的代码
System.Threading.Tasks.Task task = null;
task = System.Threading.Tasks.Task.Factory.StartNew(() =>
{
beginTask();
});
我的问题是任务需要一些时间才能结束(接近 7 分钟),所以如果有人进行了多次用户保存,任务会运行多次,所以我想在运行任务之前检查函数 beginTask()已经在运行以避免有大量后台任务正在运行。
谢谢
【问题讨论】:
-
任务结束时会发生什么?您的任务对象是否存储在某处以在运行前对其进行检查?
-
是的,BeginTask() 会一一保存用户更新一个字段。所以这需要很长时间,因为我需要等待 5 秒来更新用户,因为我调用了一个 API,我每 5 秒不能请求超过一次。这就是为什么我想检查 beginTask() 是否已经在运行以避免在前一个调用运行时发生两次或更多保存时执行它
-
在命令执行时禁用 UI 按钮怎么样?
标签: c# multithreading task