我必须在 MainThread 上调用函数计算某些东西。当计算过程运行时,我可以调用UIProgressView来更新UI。
当我刚刚调用更新功能时,它正在工作但最后更新用户界面
我使用performSelectorInBackground
调用更新功能,正常工作。
为什么使用performSelectorInBackground
可以使用
我见过这个What's happen if control UI by performSelectorInBackground?,但它没有解释为什么performSelectorInBackground
正在工作。
答案 0 :(得分:0)
我找到了一些灵魂
From the doc:
[myObj performSelectorInBackground:@selector(doSomething)withObject:nil];
调用此方法的效果与使用当前对象,选择器和参数对象作为参数调用 NSThread 的 detachNewThreadSelector:toTarget:withObject:方法相同。
BackgroundThread只是更改UI值,更新UI在mainThread上运行。
只需NSThrad即可
我认为原因是NSThrad的框架比GCD简单