Sfoglia il codice sorgente

【综合】批量压缩切换到主线程

niehaoyu 9 mesi fa
parent
commit
9e8c3138ef

+ 27 - 20
PDF Office/PDF Master/Class/Batch/Operation/KMCompressOperation.swift

@@ -51,19 +51,23 @@ class KMCompressOperation: KMBatchOperation{
                     self.delegate?.fileOperateFailed?(self.operateFile!, error: self.errorWithMsg(KMLocalizedString("Failed", nil)), info: self.operateFile!.compressInfo)
                 }
             }
-            if self.viewController?.view.window?.isVisible == true {
-                self.willChangeValue(forKey: "isFinished")
-                self.hasFinished = true
-                self.didChangeValue(forKey: "isFinished")
+            DispatchQueue.main.async {
+                if self.viewController?.view.window?.isVisible == true {
+                    self.willChangeValue(forKey: "isFinished")
+                    self.hasFinished = true
+                    self.didChangeValue(forKey: "isFinished")
+                }
             }
         }else {
-            if self.viewController?.view.window?.isVisible == true {
-                willChangeValue(forKey: "isFinished")
-                willChangeValue(forKey: "isExecuting")
-                hasExcuting = false
-                hasFinished = true
-                didChangeValue(forKey: "isExecuting")
-                didChangeValue(forKey: "isFinished")
+            DispatchQueue.main.async {
+                if self.viewController?.view.window?.isVisible == true {
+                    self.willChangeValue(forKey: "isFinished")
+                    self.willChangeValue(forKey: "isExecuting")
+                    self.hasExcuting = false
+                    self.hasFinished = true
+                    self.didChangeValue(forKey: "isExecuting")
+                    self.didChangeValue(forKey: "isFinished")
+                }
             }
         }
     }
@@ -74,17 +78,20 @@ class KMCompressOperation: KMBatchOperation{
             if FileManager.default.fileExists(atPath: (operateFile?.compressInfo.outPutPath)!) { try? FileManager.default.removeItem(atPath: (operateFile!.compressInfo.outPutPath)!)
             }
             self.delegate?.fileOperateCanceled?(self.operateFile!, info: self.operateFile!.compressInfo)
-            
-            if self.viewController?.view.window?.isVisible == true {
-                willChangeValue(forKey: "isFinished")
-                hasFinished = true
-                didChangeValue(forKey: "isFinished")
+            DispatchQueue.main.async {
+                if self.viewController?.view.window?.isVisible == true {
+                    self.willChangeValue(forKey: "isFinished")
+                    self.hasFinished = true
+                    self.didChangeValue(forKey: "isFinished")
+                }
             }
         } else {
-            if self.viewController?.view.window?.isVisible == true {
-                willChangeValue(forKey: "isCancelled")
-                hasCanceled = true
-                didChangeValue(forKey: "isCancelled")
+            DispatchQueue.main.async {
+                if self.viewController?.view.window?.isVisible == true {
+                    self.willChangeValue(forKey: "isCancelled")
+                    self.hasCanceled = true
+                    self.didChangeValue(forKey: "isCancelled")
+                }
             }
         }
     }