我有一个asp.net web应用程序,并在一个表单中使用异步过程。队列异步任务操作?
Task.Run(async() =>
{
foreach (ListItem item in cbListFaculties.Items)
{
if (item.Selected)
{
service.FinishSyncDepartment(actionId, item.Value);
}
}
});
但我想要做的是什么,如果任务已经开始,用户再次点击该网页,我想说的是,这个任务还没有停止呢,所以你不能继续。
我怎样才能解决这个问题?任何想法?
谢谢。
通过使用像静态变量/会话变量一些共享资源同步的多个页面请求? – sll
要阐述什么是SLL说,在会话状态变量或一些其他形式的持续性,设置一个标志说进程已经开始,然后开始过程,当它完成,重置标志。当用户进入页面时,检查标志。如果已设置,则警告他们该流程目前正在运行。那时,你可以做任何事情。你可以每隔几秒钟刷新,直到标记被复位,或将其发送到另一个页面,等... – Pete
是参考到'Task'活着,或者你做一个完整的页面重载和宽松的参照任务?如果是这样,那么可能需要保存对该任务的引用以便稍后使用它。要做到这一点,您可以(例如)将任务声明和启动移动到另一个不依赖于您的页面的类。例如,使用一些静态类,以便任务将在页面重新加载后出现。 – 0x49D1