From 14f3c312650fa695bf3924a32e31604620a48de7 Mon Sep 17 00:00:00 2001 From: "2248356998 qq.com" <2248356998@qq.com> Date: Tue, 14 Oct 2025 22:22:06 +0800 Subject: [PATCH] build: 10.11.102 --- .../ThingsGateway.Common.csproj | 2 +- .../Common/ExpiringDictionary.cs | 14 +++++++++----- .../ThingsGateway.SqlSugar.csproj | 2 +- src/Directory.Build.props | 6 +++--- .../Variable/VariableRow.razor.cs | 2 +- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/Admin/ThingsGateway.Common/ThingsGateway.Common.csproj b/src/Admin/ThingsGateway.Common/ThingsGateway.Common.csproj index f2009f12d..48d8cecb6 100644 --- a/src/Admin/ThingsGateway.Common/ThingsGateway.Common.csproj +++ b/src/Admin/ThingsGateway.Common/ThingsGateway.Common.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/Admin/ThingsGateway.NewLife.X/Common/ExpiringDictionary.cs b/src/Admin/ThingsGateway.NewLife.X/Common/ExpiringDictionary.cs index e20ed8780..732227dcb 100644 --- a/src/Admin/ThingsGateway.NewLife.X/Common/ExpiringDictionary.cs +++ b/src/Admin/ThingsGateway.NewLife.X/Common/ExpiringDictionary.cs @@ -1,4 +1,5 @@ using System.Collections.Concurrent; +using System.Runtime.CompilerServices; using ThingsGateway.NewLife.Threading; namespace ThingsGateway.NewLife; @@ -51,18 +52,20 @@ public class ExpiringDictionary : IDisposable return rs; } } + private ConcurrentDictionary _dict; - private ConcurrentDictionary _dict = new(); private readonly TimerX _cleanupTimer; private int defaultExpire = 60; - public ExpiringDictionary(int expire = 60) + IEqualityComparer? comparer; + public ExpiringDictionary(int expire = 60, IEqualityComparer? comparer = null) { defaultExpire = expire; + this.comparer = comparer; + _dict = new ConcurrentDictionary(comparer); + _cleanupTimer = new TimerX(TimerClear, null, 10000, 10000) { Async = true }; } - - public bool TryAdd(TKey key, TValue value) { if (_dict.TryGetValue(key, out var item)) @@ -109,7 +112,7 @@ public class ExpiringDictionary : IDisposable private void Clear(object? state) { var data = _dict; - _dict = new(); + _dict = new(comparer); data.Clear(); } private void TimerClear(object? state) @@ -143,3 +146,4 @@ public class ExpiringDictionary : IDisposable _cleanupTimer.Dispose(); } } + diff --git a/src/Admin/ThingsGateway.SqlSugar/ThingsGateway.SqlSugar.csproj b/src/Admin/ThingsGateway.SqlSugar/ThingsGateway.SqlSugar.csproj index 236abb739..c48a183cc 100644 --- a/src/Admin/ThingsGateway.SqlSugar/ThingsGateway.SqlSugar.csproj +++ b/src/Admin/ThingsGateway.SqlSugar/ThingsGateway.SqlSugar.csproj @@ -31,7 +31,7 @@ - + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 83aaa70a3..fd8148b7a 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,9 +1,9 @@ - 10.11.101 - 10.11.101 - 10.11.101 + 10.11.102 + 10.11.102 + 10.11.102 10.11.6 10.11.6 8.0.20 diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRow.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRow.razor.cs index 9abcf91a2..8c0b08be8 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRow.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Variable/VariableRow.razor.cs @@ -57,7 +57,7 @@ public partial class VariableRow : IDisposable /// /// /// - protected RenderFragment GetValue(ITableColumn col, VariableRuntime item) => builder => + protected static RenderFragment GetValue(ITableColumn col, VariableRuntime item) => builder => { if (col.Template != null) {