2011-02-10 2 views
3

Можно ли запустить селектор, который вызывается nstimer в основном потоке?NSTimer и выполнение селектора по основному потоку

NSTimer создан в своей собственной теме.

Моя структура состоит в том, что поток вызывает метод с помощью nstimer, nstimer вызывает метод, который выполняет некоторые обновления, но мне нужны эти обновления для основного потока. Каково решение? Добавьте еще один способ и скажите performOnMainThread?

ответ

4

Да, из вашей программы таймера просто вызывается использование performOnMainThread. Из документов:

Таймеры работают совместно с пробегом Петли. Чтобы эффективно использовать таймер, вы должны знать, как работают циклы запуска работать-смотрите NSRunLoop и Threading Руководство по программированию. Обратите внимание, в частности, , что циклы запуска сохраняют свои таймеры, поэтому вы можете освободить таймер после того, как вы установили в цикл выполнения.

также предостережение о недействительности повторяющихся таймеров:

для повторяющегося таймера, вы должны аннулирует объект таймера самостоятельно путем вызова метода Invalidate. Вызов этого метода запрашивает удаление таймера с текущего цикла ; В результате, вы должны всегда вызывать метод Invalidate из ту же нить, на которой таймер был установлен

Смежные вопросы