我注意到来自我主线程的以下平庸调用
[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 :(得分:6)
你确定吗?我将以下代码放在appDelegate的init方法中:
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
我还在我的applicationWillTerminate:方法中添加了第二个NSLog(...)
语句,它还告诉我它不是多线程的。