タグ付けされた質問 「dispatch-async」

6
Swift 3、Swift 4以降で、dispatch_sync、dispatch_async、dispatch_afterなどを行うにはどうすればよいですか?
Swift 2.x(または1.x)プロジェクトに次のようなコードがたくさんあります。 // 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()) { self.imageView.image = image } } または、実行を遅らせる次のようなもの: dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) { print("test") } または、Grand Central …

3
dispatch_asyncについて
このコードについて質問があります dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData* data = [NSData dataWithContentsOfURL: kLatestKivaLoansURL]; [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES]; }); このコードの最初のパラメーターは dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) このコードに、特定の優先度レベルのグローバル同時キューを返すことが定義されているグローバルキューでシリアルタスクを実行するように要求していますか? dispatch_get_global_queueメインキューよりも使用する利点は何ですか? 私は混乱しています。これをよりよく理解するために私を助けていただけませんか。

6
iPhone-Grand Central Dispatchメインスレッド
私は私のアプリで大規模な中央ディスパッチを使用して成功していますが、次のようなものを使用することの本当の利点は何ですか? dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff あるいは dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff つまり、どちらの場合も、アプリが実行される場所であるメインスレッドで実行されるブロックを起動しているため、これは負荷の軽減に役立ちません。最初のケースでは、ブロックを実行するタイミングを制御できません。ブロックを発射してから0.5秒後にブロックが実行されるケースを見てきました。2番目のケースは、 [self doStuff]; 正しい? 君たちはどう思う?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.