Rya*_*yan 9 macos grand-central-dispatch ios
dispatch_sync如果块必须等到主线程完成,为什么有人会使用.使用此函数的好处是什么,而不是在线编写代码(非块和在Grand Central Dispatch之外).我可能误解了dispatch_sync实际上做了什么.谢谢.
dispatch_sync做你的想法 - 它将块发布到指定队列并阻止当前队列,直到块被执行.主要队列/线程没有特别涉及,除非您要么派遣它或从它发送.
因此,如果必须在不同的队列/线程上执行操作(例如SQLite或OpenGL操作),您通常会使用它,但是您需要操作的结果或者只需要知道操作已完成功能条款.
模式:
dispatch_async(otherQueue,
^{
id result = doHardTask();
dispatch_async(originalQueue,
^{
didGetResult(result);
});
});
Run Code Online (Sandbox Code Playgroud)
更好的做法,但实际上并不是你可以粘贴在最后的东西.
| 归档时间: |
|
| 查看次数: |
3975 次 |
| 最近记录: |