我在WinForm就是Form1里,写了一个线成,在线成里
        public void ErrorInfo(object ob)
        {
            this.richTextBox1.Invoke(new EventHandler(ThreadError), new object[] { ob, EventArgs.Empty });
        }
        public void ThreadError(object oInfo, EventArgs eArg)
        {
            this.richTextBox1.Text += "\n" + Convert.ToString(oInfo);
        }
写了这个。
然后我在另外个CS文件里继承了Form1
我怎么能在我的CS文件里调用ErrorInfo函数,并且在richTextBox1里显示出来??

解决方案 »

  1.   

    结合线程与事件,例如AutoResetEvent,然后通过AutoResetEvent.Set()来触发线程的运行
      

  2.   

    - -#是另一个CS文件里的类,要调用Form1这个,但是我this.richTextBox1.Invoke这个,是在线程里才执行的。如果没在线程里就会抱错?
      

  3.   

    用户界面组件不能跨线程访问。必须使用Invoke,BeingInvoke.
    或者 你使用BackgroundWorker代替线程类来使用会更简化。
      

  4.   

    那我是用的Invoke的嘛
                if (this.richTextBox1.InvokeRequired)
                {
                    this.richTextBox1.BeginInvoke(new EventHandler(ThreadError), new object[] { ob, EventArgs.Empty });
                }
                else
                {
                    this.richTextBox1.Text += Convert.ToString(ob);
                }
    写成这种形式,可以运行,也可以给richTextBox1赋值,但是,不会在Form1的窗口界面中显示出来。而且richTextBox1这个值也是一个初始值了??怎么解决呀