2011-01-22 25 views
0

我有2脚本1- Soket.cs(SOKET服务器与螺纹工作)FormMain.cs(工作正常)我调用一个函数在从FormMain与soket.cs此代码:问题的多线程/调用:(

public void ResiveFunc(string FuncResive) 
{ 


    string FuncName = ""; 
    string FuncValue = ""; 
    for (int i = 0; i <= 2; i++) 
    { 
     FuncName += FuncResive[i]; 
    } 
    for (int j = 4; j <= FuncResive.Length - 1; j++) 
    { 
     FuncValue += FuncResive[j]; 
    } 
    MessageBox.Show(FuncName); 
    MessageBox.Show(FuncValue); 
    if (FuncName == "TAB") 
    { 
     Form1 mainForm = new Form1(); 
     mainForm.AdverFilter(FuncValue); 
    } 

} 

我把这个AdverFilter()函数FormMain:

public void AdverFilter(string value) 
    { 
     if (this.InvokeRequired) 
     { 

      this.BeginInvoke(new Action<string>(AdverFilter),value); 
     } 
     else 
     { 
      this.richTextBox1.Text = value; 
      MessageBox.Show("AdverFilter(string value)"); 
      MessageBox.Show(this.richTextBox1.Text); 
     } 

    } 

但它不工作!消息框显示细腻的价值,但在GUI richtextbox.text为null(函数结束后)。 ..请告诉我如何解决这个问题......!?

+0

我固定的拼写如果你真的是多theared,我建议寻求一个非常称职的心理学家。 – TomTom 2011-01-22 19:10:11

+0

RichTextBox Text属性仅用于阅读吗? – CodingBarfield 2011-01-22 20:28:26

回答

0

发送一个字符串克隆:

mainForm.AdverFilter(FuncValue.Clone()); 

this.BeginInvoke(new Action<string>(AdverFilter),value.Clone());