C3204
2025-12-31 596389540a602329116956dc7a7c8dfa53cda659
LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
@@ -1,7 +1,8 @@
using 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
{
@@ -42,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)
@@ -101,7 +107,7 @@
                return false;
            }
            if (isCircleRuning || ProcessRunBll.bPruning)
            if (isCircleRuning || ProcessRunBll.bRuning)
                ProcessRunBll.LogInfo($"{ProcessRunBll.Name}正在运行", LogInfoType.ERROR);
            ProcessRunBll.Run();
@@ -148,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();
@@ -191,9 +196,7 @@
                        ShowHoImage(RecordImage);
                }
                catch { }
                //}));
                Thread.Sleep(100);
                Thread.Sleep(33);
            }
        }