Swiftでバックグラウンドスレッドを使用するにはどうすればいいですか? [closed] 質問する

Swiftでバックグラウンドスレッドを使用するにはどうすればいいですか? [closed] 質問する

Swift でスレッドを使用するにはどうすればいいですか?

dispatchOnMainThread:^{

    NSLog(@"Block Executed On %s", dispatch_queue_get_label(dispatch_get_current_queue()));

}];

ベストアンサー1

Swift 3.0以降

多くのことが近代化されたSwift 3.0 では、バックグラウンド キューで何かを実行すると次のようになります。

DispatchQueue.global(qos: .userInitiated).async {
    print("This is run on a background queue")

    DispatchQueue.main.async {
        print("This is run on the main queue, after the previous code in outer block")
    }
}

Swift 1.2 から 2.3

let qualityOfServiceClass = QOS_CLASS_USER_INITIATED
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
    print("This is run on a background queue")

    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        print("This is run on the main queue, after the previous code in outer block")
    })
})

Swift 1.2以前 – 既知の問題

Swift 1.1 の時点では、Apple はいくつかの変更を加えずに上記の構文をサポートしていませんでした。 を渡すことはQOS_CLASS_USER_INITIATED実際には機能しませんでした。代わりに を使用してくださいInt(QOS_CLASS_USER_INITIATED.value)

詳細については、アップルのドキュメント

おすすめ記事