【多线程】问题,请大神帮忙,多谢

21321321312 2013-08-08 09:34:46
小弟在做一个winform的项目,登录成功后进入到ManiForm页面,MainFomr_Load中会加载很多项,例如绑定当前登录人的姓名,所在部门,加载我的主页界面,全局钩子等等。
1、加载这些东西程序会有很明显卡顿的现象,这里我想问一下,这里单独用一个线程加载这些是否会好一些
给页面上控件赋值的时候必须频繁的使用委托吗,这里不是很明白
2、ManiForm页中会显示当前系统时间,现在用的是Timer控件,这里单独出一个线程和Timer比起来哪个会更好一点。
谢谢
...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
TNight 2013-08-08
  • 打赏
  • 举报
回复
个人觉得如果想要用户体验好些的话还是线程会好点,关于线程回调的问题 你可以自己封装的一个控件回调的通用方法,没什么麻烦的 至于显示时间的话,Timer就够了
21321321312 2013-08-08
  • 打赏
  • 举报
回复
没有人解答就结贴了
21321321312 2013-08-08
  • 打赏
  • 举报
回复
引用 1 楼 gomoku 的回复:
1、那你不要在MainFomr_Load中进行数据库加载呀。 比如你可以在闪屏(Splash screen)中加载数据。 2、Timer比较好。开销小,没有跨线程的麻烦。
我描述的时候这点没说,不好意思 我现在想实现的效果是,在加载MainForm_Load方法时 页面出现一个picbox显示加载中,等MainForm_Load加载完成后picbox隐藏。如何实现
tsrUserName.Text = Program.RealName;//真实姓名
            tsrWeek.Text = Common.Utils.GetWeekDay();//星期
            using (DataTable dt = SysUtils.UserPositionInfo(Program.User_Id).Tables[0])
            {
                if (dt.Rows.Count > 0)
                    tsrDepartment.Text = dt.Rows[0]["Dep_Name"].ToString();//所在部门
            }
#region 添加我的主页
            Manage.FrmCenter ChildCenter = new Manage.FrmCenter();
            addTabControl(ChildCenter.Text, stcMenu, ChildCenter);
            #endregion
这是Load部分代码
gomoku 2013-08-08
  • 打赏
  • 举报
回复
1、那你不要在MainFomr_Load中进行数据库加载呀。 比如你可以在闪屏(Splash screen)中加载数据。 2、Timer比较好。开销小,没有跨线程的麻烦。

110,536

社区成员

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

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

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