Hinweis Benachrichtigung: Diese nicht Frage Duplikat ist habe ich schon gesehen Dispatch group - cannot notify to main threadDispatchWorkItem nicht Hauptthread
Es gibt nichts, antwortete etwa DispatchWorkItem
I-Code haben wie unter
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)
Welche ist funktioniert einwandfrei (ich kann notify auf der Konsole sehen) und nicht im Hauptthread start DispatchWorkItem false
Start DispatchWorkItem falsch
Ende DispatchWorkItem
benachrichtigt
Jetzt habe ich auf Hauptthread zu benachrichtigen versuchen
dwi3.notify(queue: DispatchQueue.main) {
print("notify")
}
verwenden, aber es ruft nie, ich habe gelesen und gefunden, dass, wenn Thread blockiert ist, Situation auftritt s. aber ich bin bereits ausgeführt DisptachWorkItem
in DispatchQueue.global()
Bitte Jeder kann mir dabei helfen, was eigentlich los ist?
Ihr Code funktioniert für mich mit 'dwi3.notify (queue: DispatchQueue.main)' sowohl auf einem Spielplatz und in einer App. Wie läuft es mit dem Code – Paulw11
Es ist seltsam, ich habe gerade Code in Spielplatz hinzugefügt, aber 'dwi3.notify (Warteschlange: DispatchQueue.main)' funktioniert nicht !! –
Wenn Sie auf einem Spielplatz laufen, müssen Sie 'Import PlaygroundSupport' hinzufügen und ' PlaygroundPage.current.needsIndefiniteExecution = true' – Paulw11