瀏覽代碼

修复延迟保存图片的问题

KWD 5 月之前
父節點
當前提交
1defd49326
共有 1 個文件被更改,包括 6 次插入17 次删除
  1. 6 17
      TeamAAS-VM/Views/Home/ShowVisionRender.xaml.cs

+ 6 - 17
TeamAAS-VM/Views/Home/ShowVisionRender.xaml.cs

@@ -36,11 +36,11 @@ namespace TeamAAS_VP.Views.Home
         private readonly ISystemDatabaseService _systemDatabaseService;
         private readonly IProductService _productService;
 
-        private List<DelaySaveImage> delaySaveImages = new List<DelaySaveImage>();
+        private List<DelaySaveImage> delaySaveImages { get; set; } = new List<DelaySaveImage>();
 
         // ======================= 【新增】保存任务控制:防闪退/防资源泄露 =======================
         private CancellationTokenSource _saveImageCts = new CancellationTokenSource();
-        private readonly SemaphoreSlim _saveSemaphore = new SemaphoreSlim(2, 2);
+        private readonly SemaphoreSlim _saveSemaphore = new SemaphoreSlim(5, 5);
 
         public ShowVisionRender()
         {
@@ -309,7 +309,7 @@ namespace TeamAAS_VP.Views.Home
                         await _saveSemaphore.WaitAsync(token);
                         try
                         {
-                            token.ThrowIfCancellationRequested();
+                            //token.ThrowIfCancellationRequested();
 
                             if (render.IsDelaySaveImage)// 延迟保存(适合你那边后续有处理的场景)
                             {
@@ -336,6 +336,7 @@ namespace TeamAAS_VP.Views.Home
                                     _saveSemaphore.Release();
                                     return;
                                 }
+                                LogHelper.WriteLogInfo("延时图片存入");
                                 SaveImage(
                                     render.SaveImageModel,
                                     render.SaveImagePathModel,
@@ -348,10 +349,6 @@ namespace TeamAAS_VP.Views.Home
                                 );
                             }
                         }
-                        catch (OperationCanceledException)
-                        {
-                            // 取消属于正常情况,不记录
-                        }
                         catch (Exception ex)
                         {
                             LogHelper.WriteLogError("后台保存图像任务出错!", ex);
@@ -364,13 +361,8 @@ namespace TeamAAS_VP.Views.Home
                         }
                     }, token);
                 }
-                catch (OperationCanceledException)
-                {
-                    //try { clonedBitmap?.Dispose(); } catch { }
-                }
                 catch (Exception ex)
                 {
-                    //try { clonedBitmap?.Dispose(); } catch { }
                     LogHelper.WriteLogError("RequestSaveImage(UI截图阶段) 出错!", ex);
                 }
             }));
@@ -396,6 +388,7 @@ namespace TeamAAS_VP.Views.Home
                         try { item.clonedBitmap?.Dispose(); } catch { }
                         break;
                     }
+                    LogHelper.WriteLogInfo("保存延时储存图片");
                     SaveImage(
                         item.SaveImageModel,
                         item.SaveImagePathModel,
@@ -411,11 +404,7 @@ namespace TeamAAS_VP.Views.Home
                 {
                     LogHelper.WriteLogError("UpdateDelaySaveImage 保存图像时出错!", ex);
                 }
-                finally
-                {
-                    // 保存后���放资源
-                    try { item.clonedBitmap?.Dispose(); } catch { }
-                }
+
             }
             delaySaveImages.Clear();
         }