C3204
2026-01-13 67fd626e321eb93bcc6427e017e536e696b0270a
LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
@@ -1,3 +1,8 @@
using LB_SmartVisionCameraDevice.PHM6000;
using LB_SmartVisionCameraSDK.PHM6000;
using LB_SmartVisionCommon;
using LB_VisionProcesses.Cameras;
using Sunny.UI.Win32;
using System;
using System.Collections.Generic;
using System.Drawing;
@@ -7,10 +12,6 @@
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using LB_SmartVisionCameraSDK.PHM6000;
using LB_VisionProcesses.Cameras;
using LB_SmartVisionCommon;
using LB_SmartVisionCameraDevice.PHM6000;
namespace LB_VisionProcesses.Cameras.LBCameras
{
@@ -520,6 +521,7 @@
                        {
                            AsyncLogHelper.Info($"LBCamera[{SN}]: Flushing partial buffer ({_currentLineCount} lines) on completion");
                            CreateAndFireBitmap();
                            _currentLineCount = 0;
                        }
                    }
@@ -568,11 +570,22 @@
                AsyncLogHelper.Info($"LBCamera[{SN}]: Frame {_frameCount} generated ({width}x{height})");
                // 异步触发事件,避免阻塞SDK回调线程
                Task.Run(() =>
                Task.Factory.StartNew(() =>
                {
                    try
                    {
                        ImageGrabbed?.Invoke(this, new LBCameraEventArgs(SN, bmp, true));
                        CallBackImg = (Bitmap)bmp.Clone();
                        if (CallBackImg == null)
                        {
                            return;
                        }
                        if (GetTriggerMode(out TriggerMode mode, out TriggerSource source))
                        {
                            if (mode == TriggerMode.On && source != TriggerSource.Software)
                                TriggerRunMessageReceived?.Invoke(SN, source.ToString());  // 触发运行事件
                        }
                        bmp.Dispose();
                    }
                    catch (Exception ex)
                    {