/// <summary> /// /// </summary> /// <param name="baseWorld"></param> public static void RemoveWorld( BaseWorld world ) { if ( world == null ) throw new Exception( "OneServer.RemoveWorld(...) - world == null error!" ); BaseWorld matchWorld = null; s_OnlyLockAddRemove.Enter(); { List<BaseWorld> worldList = new List<BaseWorld>(); foreach ( BaseWorld itemWorld in worldList ) { if ( itemWorld != world ) worldList.Add( itemWorld ); else matchWorld = world; } s_WorldArray = worldList.ToArray(); } s_OnlyLockAddRemove.Exit(); if ( matchWorld != null && s_bIsInitWorld == true ) { // 停止世界线程 matchWorld.StopThreadPool(); // 停止保存数据的时间片 world.StopSaveTimeSlice(); // 停止网络客户端在线状态的检查 world.StopCheckAllAliveTime(); // 在结束世界之前,保存一次数据 matchWorld.OnSave(); matchWorld.OnExit(); } }