ios - 大中央调度嵌套
<p><p>我在调度异步 block 中编写了一段代码。如下:</p>
<pre><code>dispatch_queue_t queue= dispatch_queue_create("action1", NULL);
dispatch_async(queue, ^{
;
;
;
dispatch_async(dispatch_get_main_queue(), ^{
//Update UI
});
});
</code></pre>
<p>现在,如果我想在主线程上执行 method3 怎么办?只需使用 </p>
<pre><code>- (void) method3
{
dispatch_async(dispatch_get_main_queue(), ^{
//Do method 3 on main thread
});
}
</code></pre>
<p>这是正确的方法吗?我只希望在我的 UI 更新之前先执行方法 1 2 和 3,并且需要在主线程上执行方法 3。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>是的,这很好。诚然,让方法 3 向主队列分派(dispatch)一些东西感觉是多余的,只是让调用第三种方法的例程然后转身向主队列分派(dispatch)其他东西。这可能没问题(我可以构建精确地做到这一点合乎逻辑的场景)。向主线程分派(dispatch)两次是否有意义完全取决于这两个 block 正在执行什么,但如果没有一点上下文,感觉有点多余。 </p>
<p>但撇开这一点不谈,创建队列、向其分派(dispatch)代码、然后将最后一部分代码分派(dispatch)回主线程的代码并没有错。这是一种非常常见的模式。 </p></p>
<p style="font-size: 20px;">关于ios - 大中央调度嵌套,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/28298305/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/28298305/
</a>
</p>
页:
[1]