2011-01-22 22 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());