多线程: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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章