Frage

Ich versuche, die Benachrichtigung NSTaskDidTerminateNotification in meiner multithreaded App zu bekommen, aber ich kann sie nicht arbeiten. Es ist zu funktionieren scheint, wenn ich es auf einem Single-Threaded-App getestet. In init habe ich [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask]; und ich bin ziemlich sicher, dass es, weil andere Objekte aufgerufen wird (wie myTask) dort eingeleitet werden. Und die taskDidEnd: Methode ist definiert als

- (void)taskDidEnd: (NSNotification *)aNotification
{
     NSLog(@"Task succeeded.");
}

Und in dealloc die Beobachter entfernt werden.

Das alles in einem Objekt geschieht, die in einem separaten Thread gestartet wird, und ich möchte, dass die Benachrichtigung innerhalb des gleichen Objekts erhalten.

War es hilfreich?

Lösung

Haben Sie laufen die Laufschleife auf diesem Thread? Wenn nicht, wird NSTask nicht zur Kenntnis, dass die Aufgabe beendet ist (oder wird die Aufgabe noch nicht beendet) und die Benachrichtigung nicht veröffentlichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top