Я работаю над небольшим приложением, написанным на target-c с помощью фреймворка Cocoa, и у меня возникла проблема с многопоточностью.
Я был бы очень признателен, если бы кто-нибудь мог помочь мне с некоторыми советами о том, как завершить вторичный (рабочий) поток из основного потока?
- (IBAction)startWorking:(id)sender {
[NSThread detachNewThreadSelector:@selector(threadMain:) toTarget:self withObject:nil];
}
- (void)threadMain
{
// do a lot of boring, time consuming I/O here..
}
- (IBAction)stop:(id)sender {
// what now?
}
Я нашел что-то в документах Apple , но в этом примере не хватает той части, где источник ввода runloop изменяет значение exitNow .
Кроме того, я не буду использовать много потоков в своем приложении, поэтому я бы предпочел простое решение (с меньшими накладными расходами), а не более сложное, которое может легко управлять многими потоками, но при этом генерируется больше накладных расходов (например, . используя блокировки возможно (?) вместо runloops)
Заранее спасибо