none
关于程序中的线程问题? RRS feed

  • 问题

  • winform中我在窗体的加载时间里用三个线程分别来操作不同的方法。

    Thread th1=new Thread(new ThreadStart(LoadSkin);
    Thread th2=new Thread(new ThreadStart(DoWithTimer);
    Thread th3 = new Thread(new ThreadStart(loadAuthority));
    th1.Start();
    th2.Start();
    th2.Start();
    

      LoadSkin 方法是来加载皮肤的。

      DoWithTimer 方法是显示系统时间的,就是每秒触发一次来显示系统时间。

      loadAuthority 方法是加载权限的。

    问题是我用这三个线程操作却无法完成我想要的工作,且运行时没报错,小子是菜鸟,希望大家能帮帮小子,给个正确的操作三个权限的代码。谢谢。

    2011年9月28日 1:04

答案

  • 把你的代码做如下改动:

       /// <summary>
            /// 显示系统时间
            /// </summary>
            private void DoWithTimer()
            {
                while (true)
                {
                    this.lblTime.Text = showTime();
                    Thread.Sleep(1000);
                }
            }
    最后务必不要忘记:把三个线程的IsBackGround属性设置为True!

    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年9月28日 9:09
    版主
  • 多线程开发,现在最好的选择应为TPL(任务并行库)。

    “无法工作”,有可能是因为你那三个任务的完成有因果关系,而从你代码的写法上看并不能体现某种因果关系。

    建议根据具体的问题改良代码。希望你成功!


    祝愿父母长命百岁!
    2011年10月3日 6:44

全部回复