您好,登錄后才能下訂單哦!
本篇內容主要講解“如何使用線程Thread與Operation”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用線程Thread與Operation”吧!
//Thread 原始方式 //Thread.detachNewThread 快捷方式創建Thread for i in 0...10 { Thread.detachNewThread{ print(i) } } /* 0 7 3 4 5 2 1 6 8 9 10 */
//Thread.detachNewThreadSelector class ObjectForThread { func threadTest() { let thread = Thread(target: self, selector: #selector(threadWorker), object: nil) thread.start() print("threadTest") } @objc func threadWorker() { print("threadWorker") } } let obj = ObjectForThread() obj.threadTest() /* threadTest threadWorker */
//Cocoa Operation(Operation和OperationQueue) class ObjectOperation { func test() { let operation = BlockOperation{ [weak self] in self?.threadWorker() } let queue = OperationQueue() queue.addOperation(operation) } @objc func threadWorker() { sleep(1) print("threadWorker") } } let objOperation = ObjectOperation() objOperation.test() print("after invoke test") //after invoke test //threadWorker
//自定義Operation class MyOperation: Operation { override func main() { sleep(1) print("MyOperation main") } } class CustomOperation { func test() { let operation = MyOperation() operation.completionBlock = { () -> Void in print("completionBlock") } let queue = OperationQueue() queue.addOperation(operation) } } let customOperation = CustomOperation() customOperation.test() print("after invoke customOperation test") //after invoke customOperation test //MyOperation main //completionBlock
到此,相信大家對“如何使用線程Thread與Operation”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。