Использование только одного NSThread для одного метода

У меня есть кнопка обновления в моем приложении и методе "doRefreshкто работает в фоновом потоке. Теперь, если пользователь нажимает двойной щелчок - метод doRefresh запустить 2 раза и более. Я хочу, если пользователь нажимает двойной щелчок и больше щелчков, все предыдущие потоки перестают работать и завершаются. И новый метод начинает работать в новой теме. Как мне это сделать?

Более подробная информация: я работаю с CoreData и анализирую длинный XML-файл для объектов отношений заполнения. Например, когда пользователь нажимает кнопку обновления 10 раз, привет ловит следующую ошибку:

 reason: '*** Collection <__NSCFSet: 0x5b7dd50> was mutated while being enumerated.<CFBasicHash 0x5b7dd50 [0x1503400]>{type = mutable set, count = 8   

1 ответ

Here's how things may work
1. Keep a reference to last thread spawned
2. In each thread spawned keep a variable, say var_cancel
3. When a new thread is created, set the var_cancel to true for previous thread.
4. In the thread, check for var_cancel at short durations. If found true, exit the thread.
5. Make sure the thread does not produce any side effects between var_cancel set true to exit of thread.
Другие вопросы по тегам