2008-10-21 5 views
4

я заметил, что следующий банальный звонок от моего основного потокаВызов performSelectorOnMainThread => Многопоточное приложение?

[self performSelectorOnMainThread:@selector(rollBar:) 
     withObject:nil 
     waitUntilDone:false]; 

[NSThread isMultiThreaded] причинял сообщить, что мое приложение
стало многопоточным. Я думал, что было только
, чтобы произойти, когда вы отсоедините нить, что-то, что в очереди не должно быть сделано, чтобы в очереди не было необходимости в сообщении в одном потоке
.

Какие-нибудь идеи?

Этот вопрос не совпадает с this.

Остановите пресс
Моя вина, rollBar:[m_progress_bar incrementBy: 0.5]; называется.
Привлекательный, одетый, оживляющий NSProgressIndicator отвечает
за то, что мое приложение стало многопоточным. Что удивительно.
Я этого не знал.

Удивительно, но [m_progress_bar usesThreadedAnimation] всегда
возвращается NO, даже если бар одушевляет, когда мое приложение зависло.

+0

Но если вы пытаетесь запустить что-то (в основном потоке) и не готовы ждать, пока эта операция не будет выполнена («waitUntilDone: false»), не означает, что это автоматически означает, что у вас должно быть как минимум два потока? – diciu 2008-10-21 08:38:18

+0

Нет, вы просто отправляете события в очередь своего потока. По крайней мере, это то, чего вы ожидаете. Пойми, хотя, у меня понял это: я сделал что-то немое, но результат был неожиданным. – 2008-10-21 13:02:14

ответ

6

Уверены ли вы в этом? Я поставил следующий код в моем методе инициализации AppDelegate в:

 
NSLog(@"Multi-threaded before? %@", [NSThread isMultiThreaded] ? @"Yes" : @"No"); 
[self performSelectorOnMainThread: @selector(setDelegate:) withObject: self waitUntilDone: NO]; 
NSLog(@"Multi-threaded after? %@", [NSThread isMultiThreaded] ? @"Yes" : @"No"); 

и получил этот результат в консоли:

 2008-10-21 07:26:28.296 MyApplication[82963:20b] Multi-threaded before? No 2008-10-21 07:26:28.297 MyApplication[82963:20b] Multi-threaded after? No 

Я также добавил второй NSLog(...) заявление моей applicationWillTerminate: метод и он также сказал мне, что это не многопоточность.

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