Câu hỏi được gắn thẻ «grand-central-dispatch»

Grand Central Dispatch (GCD) cung cấp một cơ chế đơn giản và mạnh mẽ cho các hoạt động đồng thời và không đồng bộ, chủ yếu trong các hệ điều hành của Apple (ví dụ: iOS, macOS, watchOS và tvOS), cũng như FreeBSD và MidnightBSD.


24
Clark_after - GCD trong Swift?
Tôi đã xem qua iBook từ Apple và không thể tìm thấy bất kỳ định nghĩa nào về nó: Ai đó có thể giải thích cấu trúc của dispatch_after? dispatch_after(<#when: dispatch_time_t#>, <#queue: dispatch_queue_t?#>, <#block: dispatch_block_t?#>)


13
Làm cách nào để tôi gửi Clark_after GCD trong Swift 3, 4 và 5?
Trong Swift 2, tôi đã có thể sử dụng dispatch_afterđể trì hoãn một hành động bằng cách sử dụng công văn trung tâm lớn: var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC))) dispatch_after(dispatchTime, dispatch_get_main_queue(), { // your function here }) Nhưng điều này dường như không còn được biên dịch …


10
Tạo singleton bằng cách sử dụng Clark_once của GCD trong Objective-C
Nếu bạn có thể nhắm mục tiêu iOS 4.0 trở lên Sử dụng GCD, đây có phải là cách tốt nhất để tạo singleton trong Objective-C (thread safe) không? + (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc] init]; }); return sharedInstance; }


6
Làm cách nào để tôi gửi_s_sync, Clark_async, Clark_after, v.v. trong Swift 3, Swift 4 và hơn thế nữa?
Tôi có rất nhiều mã trong các dự án Swift 2.x (hoặc thậm chí 1.x) trông như thế này: // Move to a background thread to do some long running work dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { let image = self.loadOrGenerateAnImage() // Bounce back to the main thread to update the UI dispatch_async(dispatch_get_main_queue()) …

9
Trong Swift làm thế nào để gọi phương thức với các tham số trên luồng chính GCD?
Trong ứng dụng của mình, tôi có một chức năng tạo NSRURLSession và gửi NSURLRequest bằng cách sử dụng sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) Trong khối hoàn thành cho nhiệm vụ này, tôi cần thực hiện một số tính toán có thêm UIImage vào trình điều khiển khung nhìn cuộc …





3
Sự khác biệt giữa Clark_async và Clark_sync trên hàng đợi nối tiếp?
Tôi đã tạo một hàng đợi nối tiếp như thế này: dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL); Sự khác biệt giữa dispatch_asyncđược gọi như thế này là gì dispatch_async(_serialQueue, ^{ /* TASK 1 */ }); dispatch_async(_serialQueue, ^{ /* TASK 2 */ }); Và dispatch_syncđược gọi như thế này trên hàng đợi …


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.