[英]DispatchWorkItem not notifying main thread
注意:這不是重復的問題,我已經見過調度組-無法通知主線程
沒有關於DispatchWorkItem的回答
我有下面的代碼
let dwi3 = DispatchWorkItem {
print("start DispatchWorkItem \(Thread.isMainThread)")
sleep(2)
print("end DispatchWorkItem")
}
let myDq = DispatchQueue(label: "A custom dispatch queue")
dwi3.notify(queue: myDq) {
print("notify")
}
DispatchQueue.global().async(execute: dwi3)
哪個工作正常(我可以在控制台上看到通知),而不是在主線程中啟動DispatchWorkItem false
啟動DispatchWorkItem false
結束DispatchWorkItem
通知
現在我試圖使用通知到主線程
dwi3.notify(queue: DispatchQueue.main) {
print("notify")
}
但是它從未調用過,我已閱讀並發現,如果Thread被阻止,則會發生這種情況。 但是我已經在DispatchQueue.global()
執行DisptachWorkItem
請有人可以幫助我,這實際上是怎么回事?
如果在操場上運行異步代碼,則需要啟用不確定的執行,否則執行可能在回調執行之前結束。
將以下行添加到操場上的代碼中:
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
完成此操作后,您將看到通知在主隊列上正確執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.