小弟在做一个winform的项目,登录成功后进入到ManiForm页面,MainFomr_Load中会加载很多项,例如绑定当前登录人的姓名,所在部门,加载我的主页界面,全局钩子等等。
1、加载这些东西程序会有很明显卡顿的现象,这里我想问一下,这里单独用一个线程加载这些是否会好一些
给页面上控件赋值的时候必须频繁的使用委托吗,这里不是很明白
2、ManiForm页中会显示当前系统时间,现在用的是Timer控件,这里单独出一个线程和Timer比起来哪个会更好一点。
谢谢多线程】

解决方案 »

  1.   

    1、那你不要在MainFomr_Load中进行数据库加载呀。
    比如你可以在闪屏(Splash screen)中加载数据。2、Timer比较好。开销小,没有跨线程的麻烦。
      

  2.   


    我描述的时候这点没说,不好意思
    我现在想实现的效果是,在加载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部分代码
      

  3.   

    个人觉得如果想要用户体验好些的话还是线程会好点,关于线程回调的问题 你可以自己封装的一个控件回调的通用方法,没什么麻烦的 至于显示时间的话,Timer就够了