这有什么区别:
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[self doSomthing:object];
}];
和此:
[self performSelectorOnMainThread:@selector(doSomething:) withObject:object waitUntilDone:NO]
答案 0 :(得分:36)
[self performSelectorOnMainThread:@selector(doSomething:)
withObject:object
waitUntilDone:NO]
调用时会执行选择器。如果要从后台线程影响UI,则必须使用此选项。如果你说YES
到waitUntilDone
,它将阻止线程,直到方法完成。
mainQueue
将该块添加到主线程的操作队列中,但不保证何时执行。该队列中可能还有其他项目仍在等待执行。