私は現在Swift 3.0で働いています。 Dispatch_Queueに配置された関数から呼び出された関数も同じDispatch_Queueに配置されているのか、またはMainに戻されているのでしょうか?dispatch_queueの親関数から呼び出された関数は、mainまたはdispatch_queueに配置されますか?
この例では、呼び出されたparentFunction1()がMyQueueに置かれているか、calledFromParentFunction()がmainで呼び出されなかったので、calledFromParentFunction()がMyQueueから呼び出されたのかどうか疑問に思っています。明示的にMyQueueを呼び出していませんか?
let MyQueue = DispatchQueue(label: "My Queue", attributes: [], target: nil)
parentFunction1() {
calledFromParentFunction()
}
calledFromParentFunction() {
print("Is this on Main or MyQueue?")
}
override func viewDidLoad() {
super.viewDidLoad()
MyQueue.async { [unowned self] in
parentFunction1()
}
}
'Thread'は' class var isMainThread:Bool'と記述されたメソッドを持ち、特定のコードパスを知るのに役立つかもしれません。 –
特定のコードがない限り、コールスタック全体が同じキューに置かれます。 – rmaddy
ありがとうございました! – TheMuffinMan834