From 365ba3913b3b59e0149f85dc835818e45a979488 Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期三, 31 十二月 2025 13:05:06 +0800
Subject: [PATCH] 修复一部分工具图像转换问题以及内存释放问题。以及合并史工提交的相机和用户设计模块
---
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