C# 多线程/调用问题:(

C# 多线程/调用问题:(,c#,C#,我有2个脚本1-Soket.cs Soket Server使用线程FormMain.cs正常工作我使用以下代码从Soket.cs调用FormMain中的函数: public void ResiveFunc(string FuncResive) { string FuncName = ""; string FuncValue = ""; for (int i = 0; i <= 2; i++) { FuncName += FuncResiv

我有2个脚本1-Soket.cs Soket Server使用线程FormMain.cs正常工作我使用以下代码从Soket.cs调用FormMain中的函数:

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);
    }

}
我在FormMain中调用此AdverFilter函数:

  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);
        }

    }
但它不起作用!!!Messagebox显示的值很好,但函数结束后,richtextbox.text在GUI中为空…请告诉我如何解决此问题…!?

发送字符串克隆:

mainForm.AdverFilter(FuncValue.Clone());

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

我修正了你的拼写如果你真的是多头的,我建议你找一个非常有能力的心理学家。RichTextBox文本属性不是只用于阅读吗?不,我不能更改任何其他字符串objectError 2与“Passage2005.Form1.AdverFilterstring”的最佳重载方法匹配有一些无效的参数错误3参数“1”:无法从“m”转换ethod group'到'string'它是克隆…使用…您想要的是方法的返回值,而不是方法本身。字符串是不可变的,因此克隆没有帮助。