我试图强制使用Grand Central Dispatch完成任务的特定顺序,但我在理解正确的方法时遇到了一些问题。我试着用下面的方式组:使用GCD等待一个条件
初始化:需要等待
startup = dispatch_group_create();
任务:
//Don't want to wait on the main thread, so dispatch async to a concurrent queue
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0L),^{
//Wait until we're finished starting up
dispatch_group_wait(startup,DISPATCH_TIME_FOREVER);
//Now we can do this stuff back on the main queue
dispatch_async(dispatch_get_main_queue(),^{
//Do work
});
});
的工作,我需要等待:
dispatch_group_async(startup,dispatch_get_main_queue(),^{ // work });
由于我的应用程序的性质,需要等待的任务可能在我需要等待的工作之前发生。我真正想要的是当情况完成,完成并且所有将来的线程都可以完成它们的事情时,以这种方式等待的能力。 GCD有这个吗?