【问题标题】:DispatchQueue.main.async doesn't crash but DispatchQueue.main.sync crashes?DispatchQueue.main.async 不会崩溃,但 DispatchQueue.main.sync 会崩溃?
【发布时间】:2018-12-11 15:15:57
【问题描述】:

当我在主线程上并尝试 DispatchQueue.main.async 时,它不会使应用程序崩溃,但 DispatchQueue.main.sync 会。为什么会这样?

【问题讨论】:

  • 异常信息是什么?
  • 可以添加错误信息吗?
  • EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

标签: ios multithreading dispatch-queue


【解决方案1】:

根据Docs

sync -- 将块提交到调度队列以同步执行。与 dispatch_async(::) 不同,此函数在块完成之前不会返回。调用此函数并定位当前队列会导致死锁

因为队列在等待自己

【讨论】:

    猜你喜欢
    • 2015-01-04
    • 1970-01-01
    • 2020-01-20
    • 2011-11-22
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 2014-04-10
    相关资源
    最近更新 更多