public void StartThread() { mDBConnect = new ServerFrame.DB.DBConnect(); mDBConnect.OpenConnect(); mRunning = true; mThread = new System.Threading.Thread(new System.Threading.ThreadStart(this.ThreadLoop)); mThread.Start(); }
public void Start(IDataServerParameter parameter) { Stop(); mParameter = parameter; mDBLoaderConnect = new ServerFrame.DB.DBConnect(); mDBLoaderConnect.OpenConnect(); //ServerFrame.Support.ClassInfoManager.Instance.Load(false); Log.FileLog.Instance.Begin("DataServer.log", false); Log.Log.Server.Print("DataServer Start!"); Log.FileLog.Instance.Flush(); IServer.LoadAllTemplateData(ServerCommon.ServerConfig.Instance.TemplatePath); CSCommon.CSLog.LogFun = Log.Log.Common.Warning; ServerCommon.TemplateTableLoader.LoadTable(ServerCommon.ServerConfig.Instance.TablePath); //加载数据库中的静态配置信息 CSCommon.Data.CDbConfig.LoadDbConfig(mDBLoaderConnect); //国战服务初始化 CountryWar.CCountryWarMgr.Instance.Start(mDBLoaderConnect); Thread.AccountLoginThread.Instance.StartThread(); Thread.PlayerEnterThread.Instance.StartThread(); Thread.DBConnectManager.Instance.StartThreadPool(2); AsyncExecuteThreadManager.Instance.InitManager(1); AsyncExecuteThreadManager.Instance.StartThread(); //mChargeManger = new Data.ChargeManager(); mPlanesMgr = new Data.PlanesMgr(this); Log.Log.Server.Print("DBConnect OK!"); mTcpSrv.ReceiveData += RPC.RPCNetworkMgr.Instance.ServerReceiveData; mTcpSrv.CloseConnect += this.ServerDisConnected; mRegisterConnect.ReceiveData += RPC.RPCNetworkMgr.Instance.ClientReceiveData; mRegisterConnect.NewConnect += this.OnRegisterConnected; mRegisterConnect.Connect(parameter.RegServerIP, parameter.RegServerPort); mLinkState = DataServerState.WaitRegServer; InitNamePool(); mPlayerManager.DownloadPlayerData(mDBLoaderConnect); /*int avgSize = 0; * Support.PerfCounter perf = new Support.PerfCounter(); * perf.Begin(); * for (int i = 0; i < 1000; i++) * { * RPC.DataWriter dw0 = new RPC.DataWriter(); * CSCommon.Data.ItemData item0 = new CSCommon.Data.ItemData(); * item0.ItemTemlateId = 2; * //item0.DangrousReInitData(); * RPC.DataWriter dw1 = new RPC.DataWriter(); * CSCommon.Data.ItemData item1 = new CSCommon.Data.ItemData(); * item1.ItemTemlateId = 2; * // item1.DangrousReInitData(); * dw0.Write(item0); * dw1.Write(item1); * * int compressSize = dw1.CompressWithTemplate(dw0); * dw1.UnCompressWithTemplate(dw0); * * avgSize += compressSize; * * RPC.DataWriter dw2 = new RPC.DataWriter(); * dw2.Write(item1); * bool isSame = dw1.IsSame(dw2); * } * Int64 time = perf.End(); * System.Diagnostics.Debug.WriteLine( "{0}:{1}" , avgSize / 1000, time);*/ //test /* * var start = ServerCommon.IServer.timeGetTime(); * * CSCommon.Data.RoleDetail rd = new CSCommon.Data.RoleDetail(); * CSCommon.Data.RoleDetail rd2 = new CSCommon.Data.RoleDetail(); * //var r = TestAutoCode(rd); * rd.BagSize = 155; * rd.BindRmb = 155; * rd.CreateTime = DateTime.Now; * rd.LocationX = 15211; * rd.LocationY = 15211; * rd.LocationZ = 15211; * rd.Rmb = 123; * rd.RoleExp = 333; * for (int i = 0; i < 10000; i++) * { * //var r = rd.GetSql(rd2); * var r = ServerFrame.DB.DBConnect.TestUpdateData("", rd, rd2); * } * var end = ServerCommon.IServer.timeGetTime() - start; * var t = end;*/ }