NSTimers VS NSThreading - PullRequest
       23

NSTimers VS NSThreading

0 голосов
/ 23 сентября 2011

Я работаю над игрой для iPhone, где игрок наклоняет iPhone, чтобы заставить персонажа двигаться, но, к сожалению, все таймеры, которые я использую для анимации сценария, замедляют мою игру. Мне сказали использовать NSThreads, но я действительно ничего о них не знаю. Мой вопрос: Каковы различия между использованием NSThreads и NSTimers? Или каковы преимущества использования NSThreads? Чем они полезны?

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

Таймеры используются для асинхронного, а не одновременного выполнения кода.

Таймер ожидает истечения определенного интервала времени и затем срабатывает, отправляя указанное сообщениецелевой объект.Например, вы можете создать объект NSTimer, который отправит в окно сообщение, сообщающее ему об обновлении себя через определенный интервал времени.

Потоки предназначены для одновременного выполнения.кода.

Объект NSThread контролирует поток выполнения.Используйте этот класс, если вы хотите, чтобы метод Objective-C выполнялся в своем собственном потоке выполнения.Потоки особенно полезны, когда вам нужно выполнить длинную задачу, но не хотите, чтобы она блокировала выполнение остальной части приложения.В частности, вы можете использовать потоки, чтобы избежать блокировки основного потока приложения, который обрабатывает пользовательский интерфейс и действия, связанные с событиями.Потоки также можно использовать для разделения большой работы на несколько более мелких, что может привести к увеличению производительности на многоядерных компьютерах.


См. Также:

0 голосов
/ 23 сентября 2011

Таймеры - это объекты, которые просто вызывают методы в более позднее время. Потоки - это дополнительные «потоки» обрабатываемых материалов в псевдо-параллельном режиме. Это как сравнивать яблоки с апельсинами - они на самом деле не связаны. Единственное отношение, которое я вижу, - это если вы хотите выполнить некоторую обработку в фоновом режиме, но вам не следует делать вызовы пользовательского интерфейса в фоновых потоках. Почему вы используете таймеры, чтобы заставить вашего персонажа двигаться? Зная это, мы могли бы предложить альтернативное решение.

...