C# 从该流读取并将文本发送到另一个表单';什么是文本框?

C# 从该流读取并将文本发送到另一个表单';什么是文本框?,c#,winforms,textbox,updating,C#,Winforms,Textbox,Updating,我在表单中打开了一个readstream。我正在从该流读取数据,并将文本发送到另一个表单的文本框。我希望文本到达readstream后立即更新到文本框中。 第一种形式的代码:-> f2.ShowDialog(); //f2 is second form's object while (true) { string inp_msg = sr.ReadLine(); f2.set_text(inp_msg); this.Refresh();

我在表单中打开了一个readstream。我正在从该流读取数据,并将文本发送到另一个表单的文本框。我希望文本到达readstream后立即更新到文本框中。
第一种形式的代码:->

 f2.ShowDialog(); //f2 is second form's object
 while (true)
 {
    string inp_msg = sr.ReadLine();

    f2.set_text(inp_msg);
    this.Refresh();              
 }
第二种形式中定义的set_文本函数:->

 public void set_text(string msg)
 {
    //MessageBox.Show(msg);            
    textBox1.Text = textBox1.Text + msg +  "\r\n";
    //Application.DoEvents();
 }
问题是文本框没有更新。

请尝试调用以下命令,而不是“f2.ShowDialog()”:

f2.Show();
调用方法“ShowDialog()”时,该语句后面的代码直到表单关闭后才会执行


有关更多详细信息,请参阅。

您的
虽然
循环将永远运行,但请在循环中的某些条件下添加一些
中断
。这是为了不断读取ReadStream。如果是这样,您需要释放
UI线程
,您应该创建另一个线程来读取流。while循环本身位于正在读取流的线程中,但您在该线程中显示了
form2
。我的意思是
form2
应该显示在
UI
线程中,而你的while循环应该在另一个线程中。我尝试过这个方法,但程序挂起并显示“无响应”对话框。正如King评论的那样,你正在无限循环中运行。你需要休息一下;语句停止while循环反复循环。