Unterschied in der Zeitplanung NSTimer in den Haupt-thread und hintergrund-thread?

Wenn ich rufe scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: auf dem Haupt-thread und Zeit-Intervall auf 5 Sekunden code unten ein timer ausgeführt wird und nach 5 Sekunden timer-Selektor aufgerufen wird.

Aber wenn ich versuche, gleichzeitig in einigen hintergrund-thread den code unten scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: ist, nicht ausgeführt wird, wird es warten, bis der timer um das Feuer und dann wird Sie ausgeführt. Natürlich, um den timer im hintergrund-thread, habe ich zum ersten mal eine Instanz der NSRunLoop und führen Sie es.

Gibt es eine Möglichkeit, die timer im hintergrund-thread und machen es non-blocking, also code nach, es wird sofort ausgeführt?

  • Es wird empfohlen, die von apple, dass NSTimer in den Haupt-thread. In der hintergrund-thread Zeit genommen, um das Feuer NSTimer möglicherweise länger als erwartet. NSTimer ist non-blocking standardmäßig. Es Stoppt nicht die Ausführung der Linien geschrieben, nachdem es.
  • können Sie bitte teilen Sie die entsprechende apple-doc-link.
  • tut NSTimer laufen zu bekommen in dem Haupt-thread standardmäßig oder jede NSTimer bekommt einen neuen thread ?
  • Es ist etwas, wie Jedes mal, wenn Sie starten Sie Ihre app auf iOS, das system erstellt einen Thread der Haupt-thread. Jeder Thread hat eine RunLoop automatisch für Sie erstellt, wie gebraucht.Derzeit wird jeder Timer feuert auf den roten Faden und ist an eine RunLoop.
InformationsquelleAutor MegaManX | 2012-09-07
Schreibe einen Kommentar