我想异步处理方法,按要求,一旦第一个方法完成,只有第二种方法应该开始执行。 问题是本身具有对后台线程运行的代码第一种方法。
我试过dispatch_semaphore_wait,但没有工作要么。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue, ^{
[self firstMethod];
NSLog(@"firstMethod Done");
});
dispatch_group_notify(group, queue, ^ {
NSLog(@"1st method completed");
NSLog(@"2nd method starting");
[self secondMethod];
});
FirstMethod本身运行在另一个工作线程这样
-(void)firstMethod
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//processing here.....
}];
什么是实现这一目标的最好方式,我不能改变firstMethod的定义,因为它通过一些第三方提供,也改变它意味着改变很多从那里这种方法被调用现有的代码