NSOperationQueue mainQueue vs performSelectorOnMainThread?

这有什么区别:

[[NSOperationQueue mainQueue] addOperationWithBlock:^{ [self doSomthing:object]; }]; 

和这个:

 [self performSelectorOnMainThread:@selector(doSomething:) withObject:object waitUntilDone:NO] 

 [self performSelectorOnMainThread:@selector(doSomething:) withObject:object waitUntilDone:NO] 

当它被调用时将执行右select器。 如果你想从后台线程中影响UI,这就是你必须使用的。 如果你说YES waitUntilDone ,它将阻塞线程,直到方法完成。

mainQueue将该块添加到主mainQueue的操作队列中,但不保证何时将被执行。 该队列中可能还有其他项目正在等待执行。