From b0a4c47dd74bc41c5df3bab6ddd8de7bcc6a52b0 Mon Sep 17 00:00:00 2001
From: patrick <patrick.xu@broconcentric.com>
Date: 星期五, 06 十二月 2019 18:35:42 +0800
Subject: [PATCH] 1. 重新整理项目,按照A034模式,将设备异步操作修改为类同步操作。使用任务队列来存储和分配任务。

---
 src/Bro.Device.Common/DeviceBase/HDevEngineTool.cs |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/Bro.Device.Common/DeviceBase/HDevEngineTool.cs b/src/Bro.Device.Common/DeviceBase/HDevEngineTool.cs
index 6e3645f..bb3966c 100644
--- a/src/Bro.Device.Common/DeviceBase/HDevEngineTool.cs
+++ b/src/Bro.Device.Common/DeviceBase/HDevEngineTool.cs
@@ -12,7 +12,7 @@
 
 namespace Bro.Common.Base
 {
-    public class HDevEngineTool
+    public class HDevEngineTool : IDisposable
     {
         #region 甯搁噺
 
@@ -41,7 +41,7 @@
         /// <summary>
         /// 绋嬪簭杩愯鏄惁鎴愬姛
         /// </summary>
-        private bool isSuccess = false;
+        public bool IsSuccessful { get; set; } = false;
 
         /// <summary>
         /// 鎺у埗鍙傛暟瀛楀吀
@@ -132,11 +132,11 @@
 
                 procedureCall.Execute();
 
-                isSuccess = true;
+                IsSuccessful = true;
             }
             catch (HDevEngineException ex)
             {
-                isSuccess = false;
+                IsSuccessful = false;
                 Trace.TraceInformation("HDevProgram {0} Run fail , Line number: {1}, Halcon error number : {2},ex:{3}", ex.ProcedureName, ex.LineNumber, ex.HalconError, ex.Message);
                 return;
             }
@@ -144,7 +144,7 @@
 
         public HTuple GetResultTuple(string key)
         {
-            if (isSuccess)
+            if (IsSuccessful)
             {
                 return procedureCall.GetOutputCtrlParamTuple(key);
             }
@@ -157,7 +157,7 @@
 
         public HObject GetResultObject(string key, bool ignoreError = false)
         {
-            if (ignoreError || isSuccess)
+            if (ignoreError || IsSuccessful)
             {
                 return procedureCall.GetOutputIconicParamObject(key);
             }
@@ -166,6 +166,17 @@
                 return new HObject();
             }
         }
+
+        public void Dispose()
+        {
+            //foreach (HObject obj in InputImageDic.Values)
+            //{
+            //    obj.Dispose();
+            //}
+
+            procedureCall.Dispose();
+            myEngine.Dispose();
+        }
     }
 
     public static class HalconHelper

--
Gitblit v1.8.0