界面采用的是DockPanel布局方式
主界面frmMain(MDI窗口),子界面frmTree在主界面加载的时候会先加载frmTree的数据(数据动态的,从数据库中查询),由于frmTree加载数据时会耗时,所以主界面在看起来会有点“假死”的效果。。在主界面加载时 会有个引导的界面 来显示加载的信息。
例如:正在加载工程信息
正在加载**信息我现在就想使用多线程如何解决界面假死的现象?
主界面frmMain(MDI窗口),子界面frmTree在主界面加载的时候会先加载frmTree的数据(数据动态的,从数据库中查询),由于frmTree加载数据时会耗时,所以主界面在看起来会有点“假死”的效果。。在主界面加载时 会有个引导的界面 来显示加载的信息。
例如:正在加载工程信息
正在加载**信息我现在就想使用多线程如何解决界面假死的现象?
解决方案 »
- winFrom qq空间登录
- C#怎样用msn给别人发送邮件??急急急啊!
- 怎么读取一批网页里的表格的内容,然后存到数据库呀
- C# 写的程序在别人的机器上打不开
- 如何解决远程SendKeys.SendWait问题,急急急..........
- c#编译的.dll文件被其他程序调用时,必须.net运行环境吗?是否可以把.dll中相关的类编译到.dll中
- DataGrid问题,求达人帮忙~!
- 请大家帮忙看看这个页面的内容怎么读取不了?
- 在VS.Net中如何使注释生成已编译的HTML帮助文件?
- Beginning C#我已经看玩了,对于C#也有了概念上的认识,下一步如何走啊?
- 请教sendmessage的使用!!!
- 菜鸟在线等答案。
{
//读取数据库
this.Invoke((EventHandler)delegate
{
//操作你的界面,比如设置DataGridView的DataSource
});
}).Start();以上放在你需要的地方,比如按钮按下,OnLoad或是Load事件。
if (MyMainRun != null) MyMainRun(20, 3, "正在加载信息栏……");
tsmInfoColumn_Click(sender, e); //初始化显示信息栏窗体
if (MyMainRun != null) MyMainRun(20, 6, "正在加载导航条……");
tsmNavigation_Click(sender, e); //初始化显示导航条窗体 这是在主界面中LOAD事件中加载的代码,tsmNavigation_Clcik(sender,e);这段代码主要就是加载子窗体frmTree并且加载数据的MyMainRun 是委托。所以 我不知道该怎么使用多线程,还有在使用过程中需要注意哪些问题?再次感谢。
网上多线程的例子太多了。自己研究一下吧!http://www.cnblogs.com/xugang/archive/2008/04/06/1138856.html
在主线程里用timer循环检测bCompleted,若为true,则启动主界面。