DispatchQueue.main.async和OperationQueue.main.addOperation不一样?

时间:2017-06-30 14:15:47

标签: ios swift

我使用swift 3& xcode8

我的代码在

下面

[A]

DispatchQueue(label: "background").async {
            autoreleasepool {

             *DB UPDATE CODE HERE  
            }

            OperationQueue.main.addOperation {
                self.uiUpdate() <-- data query & UI update code   
                self.ResultTable.reloadData() <-- tableview reload 
            }

        } 

[B]

 DispatchQueue(label: "background").async {
        autoreleasepool {

         *DB UPDATE CODE HERE  
        }

        DispatchQueue.main.async {
            self.uiUpdate() <-- [C] some data query & UI update code   
            self.ResultTable.reloadData() <-- [D]tableview reload 
        }

    } 

[A]代码非常有用。

但是[B]是错误的

如果我执行[B] 5次

C运行良好但有时UI未更新

我听说OperationQueue.main.addOperation和DispatchQueue.main.async

相同但工作方式不同

我不明白,差异A和B

0 个答案:

没有答案