From 6584357ea874839053dfa4b2cfc0d5c7636b442d Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期一, 05 一月 2026 12:30:42 +0800
Subject: [PATCH] Merge branch 'master' of http://lanpucloud.cn:1111/r/~zhengyabo/LB_TyreAppearanceInspectionSoftware

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

diff --git a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
index ee4545a..1642a11 100644
--- a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
+++ b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
@@ -43,6 +43,11 @@
 
             if (ProcessRunBll != null)
                 this.label1.Text = $"鎬绘暟锛歿ProcessRunBll.total}";
+            this.isClosed = false ;
+            var TaskPhotoContinue = Task.Factory.StartNew(() =>
+            {
+                ThreadCircleRun();
+            });
         }
 
         public void SetTitle(string title)
@@ -72,19 +77,17 @@
                 }));
             }
             else
-            {
                 UserHSmartWindowControl.ClearObj();
-            }
         }
 
         /// <summary>
         /// 寮傛鏄剧ず鍥剧墖
         /// </summary>
         /// <param name="ho_image"></param>
-        public void ShowHoImage(HImage ho_image)
+        public void ShowHoImage(HObject ho_image)
         {
-            string str = this.lblTitle.Text;
             UserHSmartWindowControl.hImage = ho_image;
+
             if (this.InvokeRequired)
             {
                 this.BeginInvoke(new Action(() =>
@@ -93,9 +96,7 @@
                 }));
             }
             else
-            {
                 this.label1.Text = $"鎬绘暟锛歿ProcessRunBll.total}";
-            }
         }
 
         public bool Run(out string msg)
@@ -107,9 +108,7 @@
             }
 
             if (isCircleRuning || ProcessRunBll.bRuning)
-            {
                 ProcessRunBll.LogInfo($"{ProcessRunBll.Name}姝e湪杩愯", LogInfoType.ERROR);
-            }
 
             ProcessRunBll.Run();
 
@@ -126,19 +125,15 @@
                 try
                 {
                     if (ProcessRunBll == null)
-                    {
                         return;
-                    }
 
                     ProcessRunBll.LogInfo(string.Format("娴佺▼[{0}]寮�濮嬭繍琛�", this.ProcessRunBll.Name), LogInfoType.INFO);
 
                     ClearObj();
                     result = Run(out msg);
 
-                    if (ProcessRunBll.GetImage(_Layout, out _, out HImage RecordImage))
-                    {
+                    if (ProcessRunBll.GetImage(_Layout, out _, out HObject RecordImage))
                         ShowHoImage(RecordImage);
-                    }
                 }
                 catch { msg = "杩愯鍑虹幇浜嗗紓甯�"; }
 
@@ -159,37 +154,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();
@@ -198,14 +192,10 @@
                     ProcessRunBll.LogInfo($"{ProcessRunBll.Name}杩愯缁撴潫,缁撴灉涓�:{msg}"
                         , result ? LogInfoType.PASS : LogInfoType.ERROR);
 
-                    if (ProcessRunBll.GetImage(_Layout, out _, out HImage RecordImage))
-                    {
+                    if (ProcessRunBll.GetImage(_Layout, out _, out HObject RecordImage))
                         ShowHoImage(RecordImage);
-                    }
                 }
                 catch { }
-                //}));
-
                 Thread.Sleep(33);
             }
         }

--
Gitblit v1.9.3