我已经实现了一些线程函数(我使用NSInvocaionOperation
)来执行一些后台进程而不会干扰UI响应。一切正常,我在操作队列中添加的所有选择器都被调用。 (我通过将NSLog放在所有选择器方法中来说这个)。
我想知道更多细节来检查/检查每个线程的状态。
即,
如果您添加了一些关于线程优化的更多要点,将会非常有用。
提前致谢。
答案 0 :(得分:5)
您可以通过调用类似的方法来获取线程执行状态, - isExecuting - isFinished - isCancelled返回bool。
答案 1 :(得分:0)
目前在iOS上进行线程优化的最佳方法是忘记显式线程管理并改为使用Grand Central Dispatch。这并不适用于所有情况,但如果您在编写时只是在后台调用某些选择器,则显式线程显然有点过分。
这是使用GCD将选择器旋转到背景中的方法:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self doSomeLongerTask]; // runs in a background thread
dispatch_async(dispatch_get_main_queue(), ^{
[self reportOperationDone]; // runs on the UI thread
});
});