为什么更新界面的操作都应该放到主线程中进行

为什么更新界面的操作都应该放到主线程中进行(也就是放到main_queue中进行),是不是界面上是不一定会立即看到效果?是不是放到其他线程当中不一定会立即执行?如果是的话... 为什么更新界面的操作都应该放到主线程中进行(也就是放到main_queue中进行),是不是界面上是不一定会立即看到效果?是不是放到其他线程当中不一定会立即执行? 如果是的话,为什么不会立即执行? 展开
 我来答
匿名用户
2013-05-18
展开全部
原因推测为:1.操作系统实践线程优先权为最高2.为了用户体验理论上马上能看到效果,但这又会根据os实践有所不同,而自绘制ui则是要看绘制方式另外在windows下有时要主动呼叫让窗口无效的api触发重新绘制事件ios/windows/android都无法在其他线程更新ui,一般背景更新也都还是要invoke给ui线程一般来说在背景线程更新ui大部分会直接崩溃,但早期.NET+visual studio下IDE会预设将某个UI的背景更新属性设为true,则可以直接在背景更动ui,但实际上这也只是.NET高阶封装把一些事情做掉,实际上还是在ui线程更新,但用起来像在背景更新,勉强算是特例
匿名用户
2013-05-18
展开全部
1、为什么更新界面的操作都应该放到主线程中进行(也就是放到main_queue中进行),是不是界面上是不一定会立即看到效果?

这个当然,否则会怎么样呢——你一边想点按钮,但是按钮一下不见了,界面和捉迷藏呢!

2、是不是放到其他线程当中不一定会立即执行?

会立即执行,只是其它线程不会阻塞你的操作,所以会出现1中的情况,你一边操作,界面一边变化,那怎么玩?

所以结论就是:
更新界面的操作应该放在主线程,这也就是用户操作体验的线程;
大量运算等耗时操作应该放在其它线程,这样就不会阻塞你的操作,即不会卡,完了按照合适的方式处理下即可,如提示个结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
禽祖酆伟毅
2019-11-15 · TA获得超过3737个赞
知道大有可为答主
回答量:3179
采纳率:32%
帮助的人:216万
展开全部
什么语言?一般来说没有你问的这个说法。更新界面的操作放在主线程中一般是为了方便编写,也可以放在子线程中。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式