From eafdcc5ad6a55d3dfdec6c4787c3f3a9f32efc7f Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期二, 29 九月 2020 13:27:50 +0800 Subject: [PATCH] 1. M071B机台配置 2. GTS板卡添加回原点捕获模式和输入信号模式 3. CameraBase使用Dictionary类型做图片缓存 4. M071流程显式Copy,原来是为了避免内存泄漏,但目前来看不是这方面原因 5. Gocator驱动添加GoDataSet之类KObject资源显式回收,怀疑其中也有非托管对象资源,测试确实起到内存回收作用 --- src/Bro.Device.Gocator/GocatorDriver.cs | 32 ++++++++++++++++++++++---------- 1 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Bro.Device.Gocator/GocatorDriver.cs b/src/Bro.Device.Gocator/GocatorDriver.cs index ae21a3f..15f801a 100644 --- a/src/Bro.Device.Gocator/GocatorDriver.cs +++ b/src/Bro.Device.Gocator/GocatorDriver.cs @@ -66,6 +66,8 @@ } HandleGoData(dataSet); + + dataSet.Dispose(); } private void HandleGoData(GoDataSet dataSet, GoImageSet imgSet = null) @@ -181,6 +183,8 @@ // } // break; } + + dataObj.Dispose(); } } @@ -238,6 +242,9 @@ } HandleGoData(dataSet, imgSet); + + dataSet.Dispose(); + if (imgSet.HImage == null) { LogAsync(DateTime.Now, $"{Name}鏈兘鑾峰彇HImage鍥惧儚", ""); @@ -412,6 +419,8 @@ _snapHandle.Set(); } } + + dataSet.Dispose(); } #region 閲嶅啓鍥剧墖淇濆瓨鎿嶄綔 @@ -422,7 +431,7 @@ OnImageUpdated?.Invoke(this, showImage, imgSetId); }); - GoImageSet set = _imageSetList.FirstOrDefault(u => u.Id == imgSetId) as GoImageSet; + GoImageSet set = _imageSetList[imgSetId] as GoImageSet; if (set == null) return; @@ -463,7 +472,7 @@ { await Task.Run(() => { - GoImageSet set = _imageSetList.FirstOrDefault(u => u.Id == imgSetId) as GoImageSet; + GoImageSet set = _imageSetList[imgSetId] as GoImageSet; if (set == null) return; @@ -493,19 +502,22 @@ } }); } + + public override void ClearImageSet(IImageSet set) + { + if (set.IsOriginSaved && set.IsFitSaved && set.IsAddtionalSaved) + { + (set as GoImageSet).HImage_2?.Dispose(); + (set as GoImageSet).HImage_2 = null; + } + + base.ClearImageSet(set); + } #endregion } public class GoImageSet : ImageSet { public HImage HImage_2 { get; set; } - - public override void Dispose() - { - base.Dispose(); - - HImage_2?.Dispose(); - HImage_2 = null; - } } } -- Gitblit v1.8.0