objective-c - 调用 performSelectorOnMainThread => 多线程应用程序?

标签 objective-c cocoa multithreading

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

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

导致 [NSThread isMultiThreaded] 报告我的应用
变成了多线程。我以为那只是应该的
当你分离一个线程时发生,一些排队
一个线程中的一条消息不需要这样做。

有什么见解吗?

这个问题和this不一样一个。

停止压榨
我的错,rollBar: 调用了 [m_progress_bar incrementBy: 0.5];
漂亮的、可爱的、动画的 NSProgressIndicator 负责
让我的应用程序成为多线程的。这是令人惊讶的。
我不知道。

令人惊讶的是,[m_progress_bar 使用线程动画] 总是
返回 NO,即使当我的应用程序挂起时栏会显示动画。

最佳答案

你确定吗?我将以下代码放入我的 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");

并在控制台中得到了这个结果:

<b></b>

<b>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
</b>

我还添加了第二个 NSLog(...)对我的 applicationWillTerminate: 方法的声明,它还告诉我它不是多线程的。

关于objective-c - 调用 performSelectorOnMainThread => 多线程应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/221152/

相关文章:

iOS - 不支持多次推送同一个 View Controller 实例

macos - cocoa 菜单栏错误 [__NSCFNumber length] : unrecognized selector sent to instance

iphone - 创建一个简单的 Simon 克隆 : How to wait between updates?

c - 四线程分割进程C程序中的"Segmentation fault: 11"错误

使用蒙特卡洛模拟多线程计算 Pi

java - Web 模块之间是否共享线程?

iphone - 如何在 iphone sdk 中显示 .jpeg 或 .gif 或 .tiff 类型的图像

objective-c - OS X 辅助功能 - 如何将窗口一直带到最前面?

iphone - 如何在 iOS 中提取字符串中两个分隔符之间的文本?

objective-c - 单击 NSTextField 下方