我在应用程序中同时使用了GCD和performSelectorOnMainThread:waitUntilDone,并且倾向于认为它们是可互换的——也就是说,performSelectorOnMainThread:waitUntilDone是GCD C语法的Obj-C包装.我一直认为这两个命令是等效的:
dispatch_sync(dispatch_get_main_queue(), ^{ [self doit:YES]; });
[self performSelectorOnMainThread:@selector(doit:) withObject:YES waitUntilDone:YES];
我错了吗?也就是说,performSelector*命令与GCD命令有什么区别吗?我已经阅读了很多关于它们的文档,但还没有看到一个明确的答案.