后面加个:
Application.DoEvents();

解决方案 »

  1.   

    private void MyThread()
    {
    this.label1.Text="已复制:\n"+i.ToString();
    Application.DoEvents();}
      

  2.   

    用更新UI界面的数据要采用委托的 方法:参考一下:private delegate void updatelable(int i);
    ........................ //采用委托进行异步更新
    this.label1.Invoke(new updatelable(dowork1),new object[]{this.listView1.Items.Count});
        }//委托的方法
    private void dowork1(int i)
    {           this.label1.Text=" 正在搜索,已搜索了"+ i.ToString()+"台机器";
    }
      

  3.   

    private void MyThread()
    {
       ShowMsg("已复制:\n"+i.ToString());
    }private void ShowMsg(string msg)
    {
    object[] o = new object[1];
    o[0] = msg;
    if (this.InvokeRequired)
    this.BeginInvoke(new InvokeDelegate_Msg(WriteMsgToLabel),o);
    }private void WriteMsgToLabel(string msg)
    {
        Label1.Text = msg;
    }
      

  4.   

    上面漏了一句:
    private delegate void InvokeDelegate_Msg(string msg);
      

  5.   

    说白了就是
    Control.Invoke
    Control.BeginInvoke
    调用,调用过程中会自动切换到UI线程