我知道Apple说所有与UI相关的操作都应该在主线程中进行。iPhone - 总是在主线程上更新用户界面?
所以我的问题是“所有UI相关的操作”真的意味着每一个可能的UI相关操作?
例如,我会在一个单独的线程中将ViewB ViewB添加到ViewA中。我应该总是在单独的线程上使用[ViewA performSelectorOnMaintThread:@selector(addSubview:)......?
谢谢
我知道Apple说所有与UI相关的操作都应该在主线程中进行。iPhone - 总是在主线程上更新用户界面?
所以我的问题是“所有UI相关的操作”真的意味着每一个可能的UI相关操作?
例如,我会在一个单独的线程中将ViewB ViewB添加到ViewA中。我应该总是在单独的线程上使用[ViewA performSelectorOnMaintThread:@selector(addSubview:)......?
谢谢
是的。
否则会崩溃。
是的,你应该在主线程中处理关于UI的所有信息。 如果你在MFC下,你应该采用相同的方式。
Grand Central Dispatch在后台线程中执行某些操作(例如:dispatch_async(dispatch_get_main_queue(), myBlock);
)并且根本没有崩溃。我做了很多事情myBlock()
但它太无聊和麻烦,不是吗? – Jack 2010-11-12 13:21:09
如何设置框架或中心或其他UI相关的属性? – Jack 2010-11-12 13:21:35
直到你的其他线程触及UI,这一切都很好。你会立即知道。 – Brandon 2010-11-12 14:51:40