我知道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