Avatar
WWDCのセッションでこのように言っていたので、優先順位に合わせて入れ替えるものだと思っていました
なるほど、それなら普通の actor は入れ替えてくれそうな感じがしますね。
DispatchQueue経由なので厳格に順番通りなんですかね...?
DispatchQueueDispatchWorkItemqos を指定できるみたいですね。使ったことなかった。 https://developer.apple.com/documentation/dispatch/dispatchworkitem
3:48 AM
そうすると MainActor でも priority を考慮してくれそう。
3:50 AM
なら↓もありな可能性があるのかな? override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) Task.detached(priority: .background) { @MainActor in do { let user = try await fetchUser(for: userID) self.user = user } catch { // エラーハンドリング } } } @MainActor のクロージャ式が丸ごと↓の block に突っ込まれるイメージ? DispatchQueue.main.async(DispatchWorkItem(qos: .background, block: /* ここ */)) (edited)