/// <summary> /// 实时刷新 /// </summary> /// <param name="realTimePool"></param> /// <param name="realTimeVersion"></param> /// <param name="username"></param> /// <returns></returns> private JsonResult RealTime(string realTimePool, string realTimeVersion, string username) { if (RealTimeInitService.GetWaitPoolSet().Contains(realTimePool)) { string newestVersion; bool initRet = ThreadHelper.CompareControllerVersion(realTimePool, realTimeVersion, out newestVersion); if (string.IsNullOrEmpty(realTimeVersion)) { initRet = RealTimeInitService.Init(realTimePool, username); } if (initRet) { string usernameAndPoolKey = username + realTimePool; if (UsernameAndPoolSet.Contains(usernameAndPoolKey)) { return(MyJson(new Result { code = -1, msg = "当前用户已有线程在等待池中,无法向等待池放入新线程。" })); } else { lock (UsernameAndPoolSet) { if (UsernameAndPoolSet.Contains(usernameAndPoolKey)) { return(MyJson(new Result { code = -1, msg = "当前用户已有线程在等待池中,无法向等待池放入新线程。" })); } else { UsernameAndPoolSet.Add(usernameAndPoolKey); } } } ThreadHelper.BatchWait(realTimePool, 60000); lock (UsernameAndPoolSet) { UsernameAndPoolSet.Remove(usernameAndPoolKey); } initRet = ThreadHelper.CompareControllerVersion(realTimePool, realTimeVersion, out newestVersion); return(MyJson(new Result { code = (short)(initRet?1:0), data = new Dictionary <string, string> { ["realTimePool"] = realTimePool, ["realTimeVersion"] = newestVersion } })); } else { return(MyJson(new Result { code = 0, data = new Dictionary <string, string> { ["realTimePool"] = realTimePool, ["realTimeVersion"] = newestVersion } })); } } else { return(MyJson(new Result { code = -1, msg = "该等待池未开放。" })); } }