当前位置:  开发笔记 > 编程语言 > 正文

调用performSelectorOnMainThread =>多线程应用程序?

如何解决《调用performSelectorOnMainThread=>多线程应用程序?》经验,为你挑选了1个好方法。

我注意到我主线程中的以下平庸调用

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

导致[NSThread isMultiThreaded]报告我的应用程序
已成为多线程.我认为只有
当你分离一个线程时才会发生这种情况,
在一个线程内排队消息的东西不应该这样做.

任何见解?

这个问题不一样,这一个.

停止按下
我的错,rollBar:[m_progress_bar incrementBy: 0.5];.
漂亮,可舔,动画NSProgressIndicator是负责
使我的应用程序成为多线程.这是令人惊讶的.
我不知道.

令人惊讶的是,[m_progress_bar usesThreadedAnimation]总是
返回NO,即使我的应用程序挂起时条形图也会动画.



1> Ben Gottlieb..:

你确定吗?我将以下代码放在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

我还在

NSLog(@"Multi-threaded before? %@", [NSThread isMultiThreaded] ? @"Yes" : @"No");
[self performSelectorOnMainThread: @selector(setDelegate:) withObject: self waitUntilDone: NO];
NSLog(@"Multi-threaded after? %@", [NSThread isMultiThreaded] ? @"Yes" : @"No");
我的applicationWillTerminate:方法中添加了第二个语句,它也告诉我它不是多线程的.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有