dispatch_async 处理耗时操作的代码块...

2021-11-02  本文已影响0人  阳光下的叶子呵
处理耗时操作的代码块...(可以多次请求数据库数据)

就是执行操作的意思,换句话说就是你在线程中执行的那段代码。在GCD中是放在block中的。执行任务有两种方式:同步执行和异步执行。两者的主要区别是:是否具备开启新线程的能力。

必须等待当前语句执行完毕,才会执行下一条语句
不会开启线程
在当前主线程执行 block 的任务
dispatch_sync(queue, block);

不用等待当前语句执行完毕,就可以执行下一条语句
会开启线程执行 block 的任务
异步是多线程的代名词
dispatch_async(queue, block);

异步执行(async):

                NSMutableArray *receipt_MutableArray = [NSMutableArray arrayWithCapacity:0];
                receipt_MutableArray = [receiptArray mutableCopy];
                // 返回并发队列:
                dispatch_async(dispatch_get_global_queue(0, 0), ^{
                    // 处理耗时操作的代码块...
                    for (NSDictionary *dic in receipt_MutableArray) {
                        [self GetAppleOrderTransactionDictionary:dic]; // 可以多次请求数据库数据
                    }
                    //通知主线程刷新
                    dispatch_async(dispatch_get_main_queue(), ^{
                        //回调或者说是通知主线程刷新,(这里可以保存、删除一下数据)

                    });
                });
               
上一篇下一篇

猜你喜欢

热点阅读