相关疑难解决方法(0)

performSelectorInBackground和NSOperation Subclass之间的区别

我已经创建了一个测试应用程序来运行深度计数器循环 我使用performSelectorInBackground和NSOperation子类分别在后台线程中运行循环函数.

我也使用performSelectorOnMainThread来通知backgroundthread方法中的主线程和NSOperation子类中的[NSNotificationCenter defaultCenter] postNotificationName来通知主线程更新UI.

最初这两个实现都给了我相同的结果,我能够更新UI而不会有任何问题.我找到的唯一区别是两个实现之间的线程数.

performSelectorInBackground实现创建了一个线程,并在循环完成后终止,我的应用程序线程计数再次变为1.

NSOperation子类实现创建了两个新线程并保持在应用程序中,我可以在main()函数中完成循环后看到3个线程.

所以,我的问题是为什么NSOperation创建了两个线程,为什么它没有像第一个后台线程实现那样被终止?

我有点迷惑,无法确定哪种实现在性能和内存管理方面是最佳的.

cocoa multithreading objective-c nsoperation

4
推荐指数
1
解决办法
2388
查看次数

目标C:如何在Objective-C中的另一个线程中杀死一个线程?

我试图建立一个多线程应用程序.其中一个线程正在作为后台进行一些数据传输.现在这个线程在完成工作后自动自杀.不知怎的,我需要在另一个线程中杀死这个线程,以便立即停止它的工作.是否有任何api或方法来实现这一目标?

multithreading objective-c

2
推荐指数
1
解决办法
6657
查看次数

标签 统计

multithreading ×2

objective-c ×2

cocoa ×1

nsoperation ×1