多線程:NSOperation

1.Operation的實現

let myOperation = NSBlockOperation { () -> Void in

            //發送網絡請求

            

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                //更新UI

            })

        }


2.添加另一個Operation

myOperation.addExecutionBlock { () -> Void in

            //第二次發送網絡請求

            

            dispatch_async(dispatch_get_main_queue(), { () -> Void in

                //第二次更新UI

            })

        }


3.任務成功後回調

myOperation.completionBlock = {

            println("已完成")

        }


4.加入隊列

NSOperationQueue().addOperation(myOperation)



5.添加依賴

//操作一依賴於操作二(操作二先執行)

        myOperation1.addDependency(myOperation2)

        myOperation1.removeDependency(myOperation2)


6.修改操作的優先級

myOperation1.queuePriority = NSOperationQueuePriority.High


7.一直等待

myOperation1.waitUntilFinished()


8.隊列的最大併發操作數

myOperationQueue.maxConcurrentOperationCount = 2


9.取消隊列中所有操作

myOperationQueue.cancelAllOperations()


10.暫停

myOperationQueue.suspended = true







發佈了53 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章