From 16a0d48dd5ea45e62c8569521ec553dc67067157 Mon Sep 17 00:00:00 2001 From: milimoe Date: Fri, 20 Mar 2026 02:02:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=A7=86=E8=A7=89=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaServers/Service/OnlineService.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OshimaServers/Service/OnlineService.cs b/OshimaServers/Service/OnlineService.cs index 890c2e9..a6bab51 100644 --- a/OshimaServers/Service/OnlineService.cs +++ b/OshimaServers/Service/OnlineService.cs @@ -1,4 +1,5 @@ -using Milimoe.FunGame.Core.Api.Utility; +using System.Collections.Concurrent; +using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; using Oshima.FunGame.OshimaModules.Models; @@ -11,7 +12,7 @@ namespace Oshima.FunGame.OshimaServers.Service public static SemaphoreSlim RoomSemaphoreSlim { get; } = new(1, 1); public static SemaphoreSlim HorseRacingSettleSemaphoreSlim { get; } = new(1, 1); public static SemaphoreSlim CooperativeSettleSemaphoreSlim { get; } = new(1, 1); - public static Dictionary GroupsHasHorseRacing { get; } = []; + public static ConcurrentDictionary GroupsHasHorseRacing { get; } = []; public static void GetRoomSemaphoreSlim() { @@ -222,9 +223,9 @@ namespace Oshima.FunGame.OshimaServers.Service User[] users = [.. room.UserAndIsReady.Keys.Where(u => u.Id == user.Id)]; foreach (User userTemp in users) { - room.UserAndIsReady.Remove(userTemp); + room.UserAndIsReady.Remove(userTemp, out _); } - if (room.UserAndIsReady.Count == 0) + if (room.UserAndIsReady.IsEmpty) { FunGameConstant.Rooms.Remove(room.Roomid); msg += ",该房间人数为零,已解散该房间。";