From 692114515445736936b6769b59f58c3657ce005a Mon Sep 17 00:00:00 2001 From: liujun <847666418@qq.com> Date: Tue, 22 Sep 2020 15:59:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=82=E5=B8=B8=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E6=89=80=E6=9C=89=E8=99=9A=E6=8B=9F=E4=BA=BA?= =?UTF-8?q?=E7=89=A9=E9=83=BD=E9=AA=91=E8=A1=8C=E5=AE=8C=E6=AF=95=EF=BC=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B2=A1=E6=9C=89=E5=8A=A0=E8=BD=BD=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Hander/MapRecordRankingHander.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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; } } }