是这样的,一共有两个类,form类和C类
class form()
{
  this.textBox1.Text="";
  C c=new C();
  Thread th=new Thread(new ThreadStart(c.doSth));
  th.Start();
}class C()
{
  public void doSth()
  {
    一些代码
    \\我希望上面的代码执行完了以后可以让form的textBox1.Text="这个线程已经执行完了",应该怎么做呢,我尝试new了一个form,就是form fm=new form();fm.textBox1.Text="这个线程已经执行完了"; 但实际上form的textBox1的Text还是"",请问有什么方法可以解决这个问题吗?谢谢了
  }}

解决方案 »

  1.   

    没看见这样的,你的是啥程序了,看样子是winform啊,winform会自动生成一个form类啊,直接用this.textbox1.text="这个线程已经执行完了"就行啊
      

  2.   

    是不是你这个线程还没有结束
    看看fm.textBox1.Text="这个线程已经执行完了"; 这行执行了吗
      

  3.   

    能执行到这句,我的意思就是类C执行到"fm.textBox1.Text="这个线程已经执行完了",就可以象类form传递一个字符串参数,让类form的textbox1的Text属性变成这个字符串参数
      

  4.   


    class   form() 

        this.textBox1.Text=""; 
        Thread   th=new   Thread(new ThreadStart(doSth)); 
        th.IsBackground = true;
        th.Start(); 
    } private void OnSubThreadNotify(string message)
    {
        if (this.textBox1.InvokeRequired)
        {
            SubThreadNotify notify = new SubThreadNotify(OnSubThreadNotify);
            if (!this.textBox1.IsDisposed)
                this.textBox1.Invoke(notify, new object[] { message });
        }
        else
        {
            this.textBox1.Text = "Process: " + message;
        }
    }delegate void SubThreadNotify(string message);public   void   doSth() 

       //一些代码 
       for (int i = 0; i < 1000000; i++)
       {
          OnSubThreadNotify(i.ToString());
       }
       OnSubThreadNotify("Done");