【问题标题】:Detect when the main thread is locked/busy (IOS)检测主线程何时锁定/忙碌(IOS)
【发布时间】:2012-02-17 01:39:04
【问题描述】:

有什么方法可以检测主线程何时被锁定/忙碌(也就是不会响应触摸事件)?

可能的方向 检查 dispatch_get_main_queue 的大小(但我不知道如何操作这个对象来查看它的大小)

[[UIApplication sharedApplication] isIgnoringInteractionEvents] 但这种方法只在部分时间有效

【问题讨论】:

  • 你能给我们更多的背景信息吗?为什么要这样做?
  • 您可能希望这样做以提高应用程序的响应能力。我还试图找到一种方法来检测阻塞主线程超过 X 秒的调用。当然你可以使用 Time Profiler 但它不会显示 ui 线程(主线程)被阻塞的绝对时间。
  • 您可以尝试打印正在运行的线程的ID号,然后直观地了解当前运行的是哪个线程。

标签: ios nsthread


【解决方案1】:

使用工具工具“时间分析器”,然后找出阻塞主线程的线索。

例如: 我发现一个方法是运行主线程 12.7% 的 cpu 时间。 然后我发现它的名称为“waitingThread”。看起来该方法正在阻塞主线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多