winform界面上,只有一个button和一个label
点击button,然后label的值在界面上依次显示1,2,3,每个值的显示间隔为100毫秒
想用多线程的方法来做,用3个线程,每一个线程在界面上显示一个数字。
麻烦大家帮帮忙,写个范例给我看看。我的项目要用到多线程,我想看一些范例。

解决方案 »

  1.   

    label1.Text = "1";
                Thread.Sleep(100);
                label1.Text += "2";
                Thread.Sleep(100);
                label1.Text += "3";
      

  2.   

    每个线程设一个方法 然后Thread.Sleep(100); thrad.start()
      

  3.   

    手写代码,不一定全部准确
    用多线程操作label的时候别忘了在 窗体的构造函数里加一句
    CheckForIllegalCrossThreadCalls = false;
    public void btn_click....
    {
        List<int> listShow = new List<int>();
        listShow.Add(1);
        listShow.Add(2);
        listShow.Add(3);    Thread t = new Thread(new ParameterizedThreadStart(lblShow));
        t.IsBackground = true;
        t.Start(listShow);
    }private void lblShow(object obj)
    {
        List<int> listShow = obj as List<int>;
        foreach(var i in listShow)
        {
             lblShow.Text = i.ToString();
             Thread.Sleep(1000);
        }
    }
      

  4.   

    错了,,见过100  我自己写了个1000  你只要把Thread.Slee(1000); 这句改成 100就行
      

  5.   

    3个线程同时
    等待Mutex
    sleep(100)
    数字+1
    施放Mutex或者WaitHandle[3]
    线程1  sleep(100) 显示1  WaitHandle.SignalAndWait(WaitHandle[0],WaitHandle[2]);
    线程2  sleep(100) 显示2  WaitHandle.SignalAndWait(WaitHandle[1],WaitHandle[0]);
    线程3  sleep(100) 显示3  WaitHandle.SignalAndWait(WaitHandle[2],WaitHandle[1]);
    ....