ios - dispatch_async 何时实际调度?
<p><p>假设我有以下代码:</p>
<pre><code>dispatch_async(dispatch_get_main_queue()) {
myFunction()
}
</code></pre>
<p>这表示异步调用 block ,它调用 <code>myFunction</code>。假设我在我的主队列中调用了这段代码,这也是为 <code>dispatch_async</code> 调用指定的队列。</p>
<p>在这种情况下,这个 block 什么时候真正被调用?我当前的队列是否被抢占并且 block 立即运行,或者当前调用堆栈展开并且 block 在下一个事件循环中被调用?或者是其他东西? </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><blockquote>
<p>When does this block actually get called in this case? Does my current queue get pre-empted and the block run immediately, or does the current call stack unroll and the block gets called at the next event loop? Or something else?</p>
</blockquote>
<p>简而言之,如果您从主队列异步分派(dispatch)到主队列,则分派(dispatch)的 block 将不会运行,直到您返回到主运行循环(并且在分派(dispatch)到主队列的任何其他 block 也完成之后)。 </p></p>
<p style="font-size: 20px;">关于ios - dispatch_async 何时实际调度?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/33204684/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/33204684/
</a>
</p>
页:
[1]