如何在iOS中查找线程的状态?
我已经实现了一些线程功能,我使用了nsInvocationOperation,它可以在不干扰UI响应的情况下执行一些后台处理。一切正常,我在操作队列中添加的所有选择器都被调用。我是通过将NSLog放在所有选择器方法中来实现的 我想知道更多的细节来检查每个线程的状态 就是 我可以测量选择器完成所需的时间吗? 我可以知道特定线程的当前状态吗? 如果您添加了更多关于线程优化的要点,这将非常有帮助如何在iOS中查找线程的状态?,ios,multithreading,time,state,performance,Ios,Multithreading,Time,State,Performance,我已经实现了一些线程功能,我使用了nsInvocationOperation,它可以在不干扰UI响应的情况下执行一些后台处理。一切正常,我在操作队列中添加的所有选择器都被调用。我是通过将NSLog放在所有选择器方法中来实现的 我想知道更多的细节来检查每个线程的状态 就是 我可以测量选择器完成所需的时间吗? 我可以知道特定线程的当前状态吗? 如果您添加了更多关于线程优化的要点,这将非常有帮助 提前感谢。您可以通过调用以下方法获取线程执行状态:, –执行 –完成了吗 –isCancelled返回布尔
提前感谢。您可以通过调用以下方法获取线程执行状态:, –执行 –完成了吗 –isCancelled返回布尔值
您可以通过调用以下方法获取线程执行状态:, –执行 –完成了吗 –isCancelled返回布尔值
目前,在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
});
});
目前,在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
});
});
浏览Apple提供的线程文档浏览Apple提供的线程文档