1

我已经实现了一些线程函数(我使用过NSInvocaionOperation),这些函数在不干扰 UI 响应的情况下执行一些后台进程。一切正常,我在操作队列中添加的所有选择器都被调用了。(我通过将 NSLog 放在所有选择器方法中来这么说)。

我想知道更多细节来检查/检查每个线程的状态。

那是,

  • 我可以测量选择器完成的时间吗?
  • 我可以知道特定线程的当前状态吗?

如果您添加更多关于线程优化的要点,这将非常有帮助。

提前致谢。

4

2 回答 2

5

您可以通过调用诸如 –isExecuting –isFinished –isCancelled 之类的方法来获取线程执行状态,这些方法返回 bool。

也看看这个

于 2012-12-06T08:28:47.017 回答
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
    });
});
于 2012-12-06T08:34:01.100 回答