线程等待
来源:互联网 发布:淘宝二手打印机可靠吗 编辑:程序博客网 时间:2024/06/09 17:43
dispatch_group_tgroup = dispatch_group_create();
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
dispatch_group_async(group,dispatch_queue_create("com.dispatch.test",DISPATCH_QUEUE_CONCURRENT), ^{
NSURLRequest *request = [[NSURLRequestalloc]initWithURL:[NSURLURLWithString:@"https://www.baidu.com"]];
NSURLSessionDownloadTask *task = [[NSURLSessionsharedSession]downloadTaskWithRequest:requestcompletionHandler:^(NSURL* _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
// 请求完成,可以通知界面刷新界面等操作
NSLog(@"第一步网络请求完成");
}];
[taskresume];
// 以下还要进行一些其他的耗时操作
NSLog(@"耗时操作继续进行");
dispatch_semaphore_wait(sema,DISPATCH_TIME_FOREVER);
});
dispatch_group_t group1 = dispatch_group_create();
dispatch_group_async(group1,dispatch_queue_create("com.dispatch.test",DISPATCH_QUEUE_CONCURRENT), ^{
// dispatch_semaphore_t sema = dispatch_semaphore_create(0);
NSURLRequest *request = [[NSURLRequestalloc]initWithURL:[NSURLURLWithString:@"https://www.github.com"]];
NSURLSessionDownloadTask *task = [[NSURLSessionsharedSession]downloadTaskWithRequest:requestcompletionHandler:^(NSURL* _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
// 请求完成,可以通知界面刷新界面等操作
NSLog(@"第二步网络请求完成");
dispatch_semaphore_signal(sema);
// dispatch_semaphore_signal(sema);
}];
[taskresume];
// 以下还要进行一些其他的耗时操作
NSLog(@"耗时操作继续进行");
// dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
});
dispatch_group_notify(group,dispatch_get_main_queue(), ^{
NSLog(@"刷新界面等在主线程的操作");
});
参考文章:http://www.jianshu.com/p/888ea823c8a5
阅读全文
0 0
- 线程等待
- 线程等待
- 线程等待
- 线程等待
- 等待指定线程结束
- (三)线程--等待句柄
- 线程等待 WaitFor...
- 线程等待 WaitFor...
- WaitForSingleObject 等待线程句柄
- 等待线程结束
- 线程等待与唤醒
- 线程创建等待消除
- 等待窗口线程关闭
- 线程的等待
- 等待线程退出pthread_join
- 线程进入等待状态
- 线程的控制等待
- linux 线程等待队列
- http://bbs.cmnxt.com/thread-5688-1-1.html
- MySQL优化原理
- 每日杂谈 -- 2017.11.3
- python自动化测试chrome设置
- Centos7下安装JDK8
- 线程等待
- VS编译项目时自动生成cmd批处理及命令
- android Kotlin 对象表达式和对象声明
- 企业级工具包Essential Studio Enterprise Edition发布2017 v3丨附下载
- 画边框(python)
- CalendarDemo
- 客户端各类控件的开头(加快写代码的速度)
- 2017.11.3第三课
- 关于使用Android开发Vitamio框架带来的一个“惊喜”