作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我看过这段代码:
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomeNetworkStuff];
});
这对我来说似乎没有多大意义。
编辑:澄清我的问题的条件:
dispatch_async
的调用是从主线程执行的。doSomeNetworkStuff
是繁重的 worker 任务。当然可以调度,但是使用主队列只会将调度的任务拉回 ui 线程并阻塞它。
拜托,我错过了什么吗?谢谢。
最佳答案
dispatch_async
让您的应用在多个队列上运行任务,因此您可以提高性能。但是与 UI 交互的一切都必须在主线程上运行。您可以在主线程外运行与 UI 无关的其他任务以提高性能。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Add some method process in global queue - normal for data processing
dispatch_async(dispatch_get_main_queue(), ^(){
//Add method, task you want perform on mainQueue
//Control UIView, IBOutlet all here
});
//Add some method process in global queue - normal for data processing
});
关于ios - main_queue 上的 dispatch_async?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15169925/
我通常使用以下代码来更新 UI 更改或弹出一些对话框: dispatch_async(dispatch_get_main_queue()) { ... } 我很清楚在以下场景中使用它: dispa
我看过这段代码: dispatch_async(dispatch_get_main_queue(), ^{ [self doSomeNetworkStuff]; }); 这对我来说似乎没有多大
我正在编写由我公司的其他人编写的代码,但我不明白他为什么这样做:我正在将键盘监听器设置为函数 [self setKeyboardListenersInRegisterView] 编码: - (void
我是一名优秀的程序员,十分优秀!