From 0ab0fde3216783ee2694d8d4bfbb94237e25a4bb Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期五, 06 三月 2026 16:52:56 +0800
Subject: [PATCH] 新增了图像增强算法及图像滤波算法

---
 LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs |   83 +++++++++++++++++++++++++++++------------
 1 files changed, 58 insertions(+), 25 deletions(-)

diff --git a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
index 3e3f7f4..56910c0 100644
--- a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
+++ b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
@@ -1,13 +1,43 @@
 锘縰sing HalconDotNet;
+using LB_SmartVision.Forms.Pages.SettingPage;
 using LB_SmartVision.ProcessRun;
 using LB_VisionControl;
-using Layout = LB_SmartVision.Forms.Pages.SettingPage.Layout;
+
 
 namespace LB_SmartVision.Forms.Pages.ProcessPage
 {
     public partial class ProcessControl : UserControl
     {
         UserHSmartWindowControl UserHSmartWindowControl = new UserHSmartWindowControl();
+
+        public event ProcessRunBllRun OnProcessRunBllRun;
+
+        private void onProcessRunBllRun()
+        {
+            if (OnProcessRunBllRun != null)
+            {
+                OnProcessRunBllRun();
+            }
+        }
+
+        public string Title = string.Empty;
+
+        public event Control_MouseDown event_MouseDown;
+        public event Control_MouseDoubleClick event_MouseDoubleClick;
+        private void event_mouseDown(object sender, MouseEventArgs e)
+        {
+            if (event_MouseDown != null)
+            {
+                event_MouseDown(sender, e);
+            }
+        }
+        private void event_mouseDoubleClick(object sender, MouseEventArgs e)
+        {
+            if (event_MouseDoubleClick != null)
+            {
+                event_MouseDoubleClick(this, e);
+            }
+        }
 
         ProcessRunBll ProcessRunBll
         {
@@ -37,11 +67,17 @@
         {
             this.panel1.Controls.Add(this.UserHSmartWindowControl);
             this.UserHSmartWindowControl.Dock = DockStyle.Fill;
-
+            this.UserHSmartWindowControl.event_MouseDoubleClick += event_mouseDoubleClick;
+            this.UserHSmartWindowControl.event_MouseDown += event_mouseDown;
             SetTitle(_Layout.ProcessName);
-
+            Title = _Layout.Title;
             if (ProcessRunBll != null)
                 this.label1.Text = $"鎬绘暟锛歿ProcessRunBll.total}";
+            this.isClosed = false;
+            var TaskPhotoContinue = Task.Factory.StartNew(() =>
+            {
+                ThreadCircleRun();
+            });
         }
 
         public void SetTitle(string title)
@@ -104,8 +140,8 @@
             if (isCircleRuning || ProcessRunBll.bRuning)
                 ProcessRunBll.LogInfo($"{ProcessRunBll.Name}姝e湪杩愯", LogInfoType.ERROR);
 
-            ProcessRunBll.Run();
-
+            //ProcessRunBll.Run();
+            onProcessRunBllRun();
             msg = ProcessRunBll.Msg;
             return ProcessRunBll.Result;
         }
@@ -148,37 +184,36 @@
 
                 if (isCircleRuning)
                 {
-                    threadCircleRun = new Thread(ThreadCircleRun);
-                    threadCircleRun.IsBackground = true;
-                    threadCircleRun.Start();
+                    this.mAutoResetEvent.Set();
                 }
                 else
                 {
                     isCircleRuning = false;
-                    threadCircleRun.Abort();
                 }
+                if (!isCircleRuning)
+                {
+                    ProcessRunBll.LogInfo($"{ProcessRunBll.Name}鍏抽棴杩炵画杩愯", LogInfoType.PASS);
+                    return;
+                }
+
+                ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�鍚繛缁繍琛�", LogInfoType.WARN);
             }
             catch { }
         }
-
-        Thread threadCircleRun = null;
+        private AutoResetEvent mAutoResetEvent = new AutoResetEvent(false);
+        bool isClosed = false;
 
         void ThreadCircleRun()
         {
-            if (!isCircleRuning)
+            while (!isClosed)
             {
-                ProcessRunBll.LogInfo($"{ProcessRunBll.Name}鍏抽棴杩炵画杩愯", LogInfoType.PASS);
-                return;
-            }
-
-            ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�鍚繛缁繍琛�", LogInfoType.WARN);
-
-            while (isCircleRuning)
-            {
-                //this.BeginInvoke(new Action(() =>
-                //{
                 try
                 {
+                    if (isCircleRuning == false)
+                    {
+                        this.mAutoResetEvent.WaitOne();
+                    }
+
                     ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�濮嬭繍琛�", LogInfoType.WARN);
                     ClearObj();
                     bool result = ProcessRunBll.Run();
@@ -191,9 +226,7 @@
                         ShowHoImage(RecordImage);
                 }
                 catch { }
-                //}));
-
-                Thread.Sleep(100);
+                Thread.Sleep(33);
             }
         }
 

--
Gitblit v1.9.3