解决方案 »

  1.   

    using System.Threading;       public delegate void MyInvoke(string str);
            private void btnStartThread_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(new ThreadStart(DoWord));
                thread.Start();
            }
            public void DoWord()
            {            
                MyInvoke mi = new MyInvoke(SetTxt);
                BeginInvoke(mi,new object[]{"abc"});                
            }        public void SetTxt(string str)
            {
                txtReceive.Text += str + System.Environment.NewLine;
            }
      

  2.   

    Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。
    Control.InvokeRequired 属性
    获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,
    因为调用方位于创建控件所在的线程以外的线程中。
    delegate double CalculateMethod(double Diameter); 
    static CalculateMethod cMethod;
    double result = 0; 
    static void Main(string[] args)

    cMethod = new CalculateMethod(Calculate);
    cMethod.BeginInvoke(5, new AsyncCallback(TaskFinished), null); 

    public static double Calculate(double Diameter)
    {
    return Diameter * Math.PI;

    public static void TaskFinished(IAsyncResult result)
    {
    result=cMethod.EndInvoke(result);
    }
    参考