好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 getstr88 于 2022-6-26 22:10 编辑
因为接触C#没多久,且不深。最近踩了一些坑。然后看了些资料,但对winform界面绘制,还是不确定理解是否正确
所以,有几个问题,大佬们帮忙看看,我理解是否正确
1、winform界面的刷新不是执行一个代码,比如pictureBox.image = XXX,或者 textBox.text = "xxx"就立即刷新的。而是winform自己有个UI主线程,它以一定频率检测是不是有的UI被标记为需要刷新了(dirty),如果有才刷新
2、对一个控件,执行.refresh()就会立即重绘UI
3、因为winform是UI主线程,检测刷新界面,所以我如果在主线程写个非常耗时的IO操作或者干脆死循环,那么界面应该永远不刷新了
以上3个,不知理解是否正确
特别是第2条。我做过测试,就是执行一堆非常耗时的IO操作,比如处理图片并保存。
然后我代码是这样的
foreach(每个要处理的)
{
textbox.text = “当前处理第XX个”;
textbox.Refresh();
…… 处理代码
}
前几个还能看到textbox刷新,后面直接完全不刷新了。我把窗口最小化后,想要再打开也打不开,知道最后全处理完,不假死了才能打开 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|