diff --git a/Hander/MapRecordRankingHander.cs b/Hander/MapRecordRankingHander.cs index 0276a4f..4dc4769 100644 --- a/Hander/MapRecordRankingHander.cs +++ b/Hander/MapRecordRankingHander.cs @@ -13,15 +13,19 @@ namespace OnlineUserPool.Hander public class MapRecordRankingHander { private static List mapRecordRankings; - private static bool loading = false;//防止服务端响应慢,多次加载 + private static object locker = new object();//防止服务端响应慢,多次加载 private int top = int.Parse(ConfigHelp.Top); public MapRecordRankingHander() + { + Init(); + } + + private void Init() { var randomUser = WebService.GetMapRouteRandomUser(new RandomRankingUserRequestVM() { top = top }); mapRecordRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList()); } - /// /// 获取虚拟人物数据 /// @@ -72,10 +76,13 @@ namespace OnlineUserPool.Hander /// public void RemoveEndAndAddNewVirtualUser() { - if (mapRecordRankings != null && mapRecordRankings.Count > 0 && !loading) + lock (locker) { - loading = true; var end = mapRecordRankings.FindAll(n => n.End); + if (end.Count == mapRecordRankings.Count) + { + Init(); + } if (end.Count > 0) { mapRecordRankings.RemoveAll(n => n.End); @@ -87,7 +94,6 @@ namespace OnlineUserPool.Hander var addRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList()); mapRecordRankings.AddRange(addRankings); } - loading = false; } } }