//Queue<AtomHolder> mEnterGameQueue; void Tick() { DBConnect.Tick(); if (mLoginQueue.Count > 0) { AccountLoginHolder atom = null; lock (this) { atom = mLoginQueue[0]; mLoginQueue.RemoveAt(0); } try { IDataServer.Instance.PlayerManager.Do_AccountLogin(atom); } catch (System.Exception ex) { Log.Log.Common.Print(ex.ToString()); Log.Log.Common.Print(ex.StackTrace.ToString()); } } }
public void PushLogin(AccountLoginHolder loginHolder) { int queueCount = 0; lock (this) { foreach (var i in mLoginQueue) { if (i.Name == loginHolder.Name) { break; } } mLoginQueue.Add(loginHolder); queueCount = mLoginQueue.Count; if (queueCount > 1) { //RPC.PackageWriter pkg = new RPC.PackageWriter(); //H_RPCRoot.smInstance.HGet_GateServer(pkg).ClientTryLoginSuccessed(pkg, loginHolder.LinkHandle, loginHolder.Name, loginHolder.Id); //这里要告诉客户端,还有多少在排队 //pkg.DoCommand(loginHolder.Connect, RPC.CommandTargetType.DefaultType); } } }