public void CancelRequest(ProjectReferrencer pr) { lock (WaitingUsers) { pr.IsResSynchronizing = false; foreach (var id in pr.UserIDs) { var suser = Program.UserMgr.GetLoginUserInfo(id); WaitingUsers.Remove(suser); } } }
public bool PushRequest(ProjectReferrencer pr) { bool succeeded = false; lock (WaitingUsers) { foreach (var id in pr.UserIDs) { var suser = Program.UserMgr.GetLoginUserInfo(id); if (suser.LoginInfo.MissingResourceFiles.Length > 0) { WaitingUsers.Add(suser); succeeded = true; } } pr.IsResSynchronizing = true; } return(succeeded); }
public void Tick() { for (int i = 0; WaitingUsers.Count > 0 && i < LoadingUserSlots.Length; ++i) { if (LoadingUserSlots[i] == null) { ServerLoginUserInfo user = null; lock (WaitingUsers) { user = WaitingUsers[0]; WaitingUsers.RemoveAt(0); } if (user.Status < LoginStatus.在线) { --i; } else { TransRequestService.QueryTransmission(user.LinkEndPoint.Address, user.LoginInfo.TransServicePort, TransFileKind.ResourceFile, user.LoginInfo.MissingResourceFiles); LoadingUserSlots[i] = user; } } } }