大哥们帮帮忙 
求用线程怎么控制主线程(窗体)中的控件???

解决方案 »

  1.   

    简单的例子
    delegate void SetStatus(bool status);void AddressChanged(object sender, EventArgs e)
    {
          bool isConnected = //参数;      if (InvokeRequired)//是否线程安全
            Invoke(new SetStatus(UpdateStatus), new object[] { isConnected });
          else
            UpdateStatus(isConnected);
    }void UpdateStatus(bool connected)
    {
          if (connected)
             this.connectionPictureBox.ImageLocation = @"..\bullet.green.gif";
          else
             this.connectionPictureBox.ImageLocation = @"..\bullet.red.gif";
    }或者看看这个
    http://www.codeproject.com/csharp/threadsafeforms.asp
      

  2.   

    谢谢你了 lovefootball 
    还在吗
      

  3.   

    如果多线程共用变量或者对象
    请使用LockHashtable ht = new Hashtable();
    Lock(ht)
    {
        //todo........
    }
      

  4.   

    Control.CheckForIllegalCrossThreadCalls = false;
    放在要调用控件语句的前面
      

  5.   

    在顶下 
    问下大虾们在子线程可以访问主线程里面的Socket对象吗?