C# 程序执行时间长导致界面白屏

nma_123456 2014-05-22 01:44:24
C# 程序执行时间长导致界面白屏

点击按钮后弹出一个窗体,但是由于点击按钮后到窗体弹出前需要执行的代码很多,大概需要3s中左右导致界面白屏,有什么好的办法吗?求分享经验和解决方法。
...全文
509 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nma_123456 2014-06-09
  • 打赏
  • 举报
回复
引用 8 楼 liucqa 的回复:
先弹出窗体,然后再处理代码 如果窗体需要代码处理的结果来决定显示内容的话,就先搞个进度条,等处理完了,再弹出窗体
到现在来看,backgroundwork、 Invoke、beginInvoke都不能用,只能是优化代码。
nma_123456 2014-06-09
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
同意5楼. 如果代码非要放到主线程里跑的话,就只能将进度条放到线程里去显示了...
进度条不能用,我是在下位机的基础上开发的,页面打开过程需要查找与下位机进行通信,导致这个问题,并且有很多其他的小的窗体附加在主窗体上,主窗体打开时,会初始化子窗体,导致页面卡。
bwangel 2014-05-24
  • 打赏
  • 举报
回复
多线程,完了以后Invoke一下弹出窗体的代码
泡泡龙 2014-05-24
  • 打赏
  • 举报
回复
先弹出窗体,然后再处理代码 如果窗体需要代码处理的结果来决定显示内容的话,就先搞个进度条,等处理完了,再弹出窗体
wl58796351 2014-05-24
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/wl58796351/4955303,可以看看这个示例
wmg494005678 2014-05-22
  • 打赏
  • 举报
回复
很正常啊,业务处理复杂,进度条,遮罩层显示呗
於黾 2014-05-22
  • 打赏
  • 举报
回复
同意5楼. 如果代码非要放到主线程里跑的话,就只能将进度条放到线程里去显示了...
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
你可以让慢变得更美丽一些。 比如加个loading,loading结束后,再弹出窗口。
於黾 2014-05-22
  • 打赏
  • 举报
回复
backgroundworker本身也是线程吧?
xian_wwq 2014-05-22
  • 打赏
  • 举报
回复
如果不想用委托或者线程,看看backgroundworker控件的用法。 其实,用委托处理也不是很麻烦。。。
於黾 2014-05-22
  • 打赏
  • 举报
回复
可以考虑采用异步操作,操作完成后触发一个complete事件来更新你的界面.
nma_123456 2014-05-22
  • 打赏
  • 举报
回复
用线程的话,涉及到跨线程显示的问题,尽量的不用线程。

110,539

社区成员

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

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

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