让Block顺序执行
来源:互联网 发布:知柏地黄丸功效与禁忌 编辑:程序博客网 时间:2024/06/07 06:30
利用GCD的 dispatch_semaphore_t 设置线程依赖
+ (NSString *)getErrorTextWithCustmer:(KPCustomer *)customer
{
__block NSString *alertStr;
//先创建一个semaphore
// dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
KPViewRequest *request = [KPViewRequest message];
request.minCtime = [[DataManager getInstance].localManager getSyncTime];
KPViewRequest_Option *viewRequest_Option = [KPViewRequest_Option message];
viewRequest_Option.type = KPViewFinanceType_FinanceCustomer;
viewRequest_Option.value = [NSString stringWithFormat:@"%lld",customer.customerId];
[request.optionArray addObject:viewRequest_Option];
[[DataManager getInstance].financeManager reloadData];
[[DataManager getInstance].financeManager reloadFinance:request];
[[DataManager getInstance].financeManager reloadFinancePage:^(FinancePagination * _Nullable pagination) {
if (pagination) {
for (KPFinance *message in pagination.list) {
if (message.local) {
//发出已完成的信号
alertStr = ML(@"部分收款纪录未上传,线上数据可能存在差异");
dispatch_semaphore_signal(semaphore);
break;
}
}
//发出已完成的信号
dispatch_semaphore_signal(semaphore);
}
}];
//等待执行,不会占用资源
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
return alertStr;
}
- 让Block顺序执行
- join()之让线程按顺序执行
- 4.1.16ReentrantLock让线程顺序执行
- 让异步的多个ajax顺序执行的方法
- 运用预制件添加人物(让程序顺序执行 , 待修改)
- 用Promise让Node的异步任务顺序执行
- 有三个线程,怎么让他们按顺序执行
- [原创]Enterprise Library Policy Injection Application Block 之四:如何控制CallHandler的执行顺序
- 执行顺序
- 执行顺序
- 单纯BLOCK的执行
- 执行计划执行顺序
- 如何让SQL语句不执行默认排序,而是按照in语句的顺序返回结果
- 函数执行顺序 打印顺序
- 执行计划和执行顺序
- ajax 同步执行(顺序执行)
- AsyncTask执行顺序,并发执行。
- 执行计划显示执行顺序
- Hikaricp源码解读(5)——物理连接生命周期介绍
- jeecg3.5中的导入excel文件的使用及完善
- [数学理论]单一数字评估指标
- css中的em
- 初识Oracle
- 让Block顺序执行
- 数据的归一化
- 51nod 1105 第K大的数 (二分套二分 好题)
- poj 3070 Fibonacci
- 一行 Shell 通过 Nginx access 日志实时统计单台机器QPS
- android java 接口回调
- jeecg中上传附件的处理
- 扩展vim遇到的问题-windows与linux的文件格式问题
- python学习教程