From ca98f7e257ebeb9f5648f6a299e82f626dd4f533 Mon Sep 17 00:00:00 2001 From: zqm Date: Thu, 6 Nov 2025 10:57:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DSystem.ArgumentException?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=EF=BC=9A=E4=BC=98=E5=8C=96Setting.cs?= =?UTF-8?q?=E4=B8=ADRealTimeImage=E5=B1=9E=E6=80=A7=E7=9A=84=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=BA=BF=E7=A8=8B=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E4=BF=9D=E6=8A=A4=E3=80=81=E7=8A=B6=E6=80=81=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E5=92=8C=E6=AD=A3=E7=A1=AE=E7=9A=84=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CS/Framework4.0/Toprie/Toprie/Setting.cs | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index ba51be6..25c54ed 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -113,8 +113,44 @@ namespace JoyD.Windows.CS } set { - mRealTimeImage?.Dispose(); + // 线程安全检查 - 确保在UI线程上执行 + if (this.InvokeRequired) + { + try + { + this.BeginInvoke(new Action((img) => RealTimeImage = img), value); + } + catch (ObjectDisposedException) + { + // 控件已释放,释放传入的图像 + value?.Dispose(); + } + return; + } + + // 防止重复设置相同的图像 + if (mRealTimeImage == value) + return; + + // 检查是否在有效状态下操作 + if (this.IsDisposed || this.Disposing || pictureBoxTemperatureDisplay == null || pictureBoxTemperatureDisplay.IsDisposed) + { + // 如果窗口已关闭或正在关闭,释放传入的图像 + value?.Dispose(); + return; + } + + // 释放旧图像 + if (mRealTimeImage != null && mRealTimeImage != value) + { + try { mRealTimeImage.Dispose(); } catch { } + } + + // 设置新图像 mRealTimeImage = value; + + // 立即更新UI + UpdatePictureBoxImage(); } } }