/// <summary>
/// 1,对访问此action的用户进行异步处理,然后将此异步加入到全局的list当中,
/// 再等待异步处理完成,如果完成,将此异步操作从全局的list中删除,给前端返回处理结果
/// 2,设置全局list要存放的处理人数
/// 3,如果达到上限,直接给用户返回请排队,然后全端排队等待,等待五分钟之后接着提交
/// </summary>
/// <returns></returns>
public string Index()
{
TaskFactory taskFactory = new TaskFactory();
if (EBS.Common.Common.ListTask.Count > 1000)
{
return "请排队!";
}
Task task = taskFactory.StartNew(() =>
{
//do it
Thread.Sleep(1000*60);
});
lock (EBS.Common.Common.ListTask)
{
EBS.Common.Common.ListTask.Add(task);
}
if (!task.IsCompleted)
task.Wait();
lock (EBS.Common.Common.ListTask)
{
if(EBS.Common.Common.ListTask.Exists(x=>x==task))
EBS.Common.Common.ListTask.Remove(task);
}
return "完成!";
}