我遇到了dispatch_async挂起的问题。我想在队列中添加另一个操作时找出队列中的操作/方法,以便我可以追踪我的队列挂起的位置。
dispatch_async(dispatch_get_main_queue(), ^{
// NSLog the items in the queue at this moment
[_delegate searchOperationFinished:self];
});
我验证了队列正在运行它运行其他操作但它从未使它最终运行此方法。
答案 0 :(得分:2)
你不能,尽我所知。检查控制台输出以查看是否有异常。更好的是,在调试器下运行它并打破异常。
如果没有显示任何内容,请在调试器中将其停止并检查主线程的堆栈跟踪。据推测,某些东西要么在主线程上被阻止,要么正在运行内部运行循环。无论哪种方式,堆栈跟踪应该揭示什么。 (获得堆栈跟踪的另一种方法,至少在Mac OS X上,是使用Activity Monitor或Instruments来“采样”该过程。)