From ab65b563a5d37b22082f6b7ae93ad83105da5d31 Mon Sep 17 00:00:00 2001 From: shangfengh <3495281661@qq.com> Date: Sat, 27 May 2023 03:55:31 +0800 Subject: [PATCH] perf: :lock: add the addictionLock --- .../GameObj/Character/Character.Student.cs | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/logic/GameClass/GameObj/Character/Character.Student.cs b/logic/GameClass/GameObj/Character/Character.Student.cs index a068eae..6c2eebf 100644 --- a/logic/GameClass/GameObj/Character/Character.Student.cs +++ b/logic/GameClass/GameObj/Character/Character.Student.cs @@ -51,18 +51,39 @@ namespace GameClass.GameObj } protected readonly int orgTreatSpeed; - public int MaxGamingAddiction { get; protected set; } + private readonly object addictionLock = new(); + private int maxGamingAddiction; + public int MaxGamingAddiction + { + get + { + lock (addictionLock) + return maxGamingAddiction; + } + protected set + { + lock (addictionLock) + { + if (value < gamingAddiction) gamingAddiction = value; + maxGamingAddiction = value; + } + } + } private int gamingAddiction; public int GamingAddiction { - get => gamingAddiction; + get + { + lock (addictionLock) + return gamingAddiction; + } set { if (value > 0) - lock (gameObjLock) - gamingAddiction = value <= MaxGamingAddiction ? value : MaxGamingAddiction; + lock (addictionLock) + gamingAddiction = value <= maxGamingAddiction ? value : maxGamingAddiction; else - lock (gameObjLock) + lock (addictionLock) gamingAddiction = 0; } }