主线程阻塞 无法刷新窗体

PhilipGuo 2014-08-07 04:40:03
主线程里有个数据库操作,因为数据库量比较大,所以耗时比较多,导致主线程一直停在那里,
在上面new了个窗体,想要show出来时,却迟迟刷不出来,
有什么好的办法木有啊?
...全文
227 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
PhilipGuo 2014-08-08
  • 打赏
  • 举报
回复
后来想想,如果把新开窗体放在一个线程里,之后关闭时就是要跨线程操作了,也挺麻烦的, 所以把数据库处理的放进了线程里,打开和关闭窗体还是在主线程里。 谢谢各位了!
mjp1234airen4385 2014-08-07
  • 打赏
  • 举报
回复
new 完成体,记得Application.DoEvent(); 然后在线程调用处理数据库的数据,主UI木问题。
於黾 2014-08-07
  • 打赏
  • 举报
回复
如果主线程在更新之后还要做别的逻辑,就新线程显示个进度条,不让操作 如果不需要等待,果断开新线程处理
sulizhengsdo 2014-08-07
  • 打赏
  • 举报
回复
开一个线程池出来,将你要要做的操作封装到一个函数里面去,那么主线程就不会阻塞,主窗体也不会出现卡了

ThreadPool.que(什么什么 UserItemWork不记得了按提示自己敲吧吧,我记不得了)  将函数传递进去就ok了 ,这个是我的思路希望对你有帮助
xdashewan 2014-08-07
  • 打赏
  • 举报
回复
开个新线程处理呗

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧