From 4a01611ade48480bed665ba56b7096afde770063 Mon Sep 17 00:00:00 2001 From: zqm Date: Tue, 13 Jan 2026 13:57:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=9B=E5=BB=BA=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CS/Framework4.0/Toprie/Toprie/Camera.cs | 32 +++++++++++-------- .../Toprie/Toprie/DeviceManager.cs | 1 + 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index 201dad5..05240b4 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -367,8 +367,6 @@ namespace JoyD.Windows.CS.Toprie // 配置文件存储在Config子目录中 string configDir = Path.Combine(_projectPath, "Config"); - // 确保Config目录存在 - Directory.CreateDirectory(configDir); string configPath = Path.Combine(configDir, "测温区信息.csv"); if (!File.Exists(configPath)) @@ -435,8 +433,6 @@ namespace JoyD.Windows.CS.Toprie // 配置文件存储在Config子目录中 string configDir = Path.Combine(_projectPath, "Config"); - // 确保Config目录存在 - Directory.CreateDirectory(configDir); string configPath = Path.Combine(configDir, "温差数据.csv"); if (!File.Exists(configPath)) @@ -793,6 +789,7 @@ namespace JoyD.Windows.CS.Toprie { try { + Console.WriteLine("正在加载并启动相机"); // 启动设备Ping StartDevicePing(); // 延迟启动相机,避免界面卡顿 @@ -801,17 +798,26 @@ namespace JoyD.Windows.CS.Toprie while (!IsDevicePingable) Thread.Sleep(3000); // 延迟3秒后启动 _isFirst = false; - this.Invoke(new Action(() => + + // 确保窗口句柄已经创建,避免Invoke时抛出异常 + while (!this.IsHandleCreated) + Thread.Sleep(100); // 等待窗口句柄创建 + + // 使用Invoke或BeginInvoke调用UI线程操作 + if (this.IsHandleCreated) { - try + this.BeginInvoke(new Action(() => { - StartCamera(); - } - catch (Exception ex) - { - ShowError($"自动启动相机失败: {ex.Message}"); - } - })); + try + { + StartCamera(); + } + catch (Exception ex) + { + ShowError($"自动启动相机失败: {ex.Message}"); + } + })); + } }); } catch (Exception ex) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs b/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs index 13ef3bc..428d87c 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/DeviceManager.cs @@ -514,6 +514,7 @@ namespace JoyD.Windows.CS.Toprie /// private void LoadAllConfigs() { + Console.WriteLine($"正在加载配置:{ProjectPath}"); LoadZoneConfig(); LoadTemperatureDiffConfig(); }