Управление многопоточностью в Цели C - PullRequest
0 голосов
/ 21 марта 2012

Я новичок в разработке приложений для iPhone, и у меня проблема с управлением потоками.

Я установил два потока:

  • первый обновляет LABEL (LABEL1) послеуказанный интервал времени [работает нормально]
  • другой делает то же самое [обновляет другую метку (LABEL2)] и (управляется) запускается и останавливается с событием нажатия кнопки:

    • 1-е нажатие кнопки запускает нить и делает видимым LABEL2
    • 2-е нажатие останавливает его выполнение и делает соответствующий LABEL2 невидимым ... и таким образом контролируется ..

Кнопка имеет событие TUCHUPINSIDE, и я работаю с имитатором iPhone.

Работает нормально, когда кнопка нажата нормально (медленно), но при двойном нажатии или непрерывном нажатиикнопка и состояние ее выполнения наступает - тогда соответствующий LABEL2 обновляется быстрее, чем его интервал.

Почему это происходит?

1 Ответ

3 голосов
/ 21 марта 2012

Во-первых, не обновляйте пользовательский интерфейс ни в одном потоке, кроме основного, вы получите непредсказуемые результаты.

Почему вы делаете это в другом потоке? Вы просто экспериментируете?

Кроме того, я бы не советовал использовать NSThread (как и Apple). Есть еще много высокоуровневых API параллелизма, которые вы можете использовать в target-C, такие как NSOperations, GCD ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...