【发布时间】:2015-02-02 14:46:47
【问题描述】:
下面是我在运行 Winforms GUI 的线程中的 while(true) 循环中运行的函数。 我设置了一个按钮来将文本数据放入 inBuffer 对象中。这总是有效的,但是当我从另一个线程放入缓冲区对象时,会在 Console.out.WriteLine 语句中检测、提取和打印数据,但它永远不会出现在 Display (textBox) 对象中
public void put()
{
string strDisplayMe = ModemKind.MainClass.inBuffer.MkRequest();
if (strDisplayMe != "")
{
Console.Out.WriteLine("FOUND SOMETHING IN BUFFER: " + strDisplayMe);
char[] DisplayMeArr = strDisplayMe.ToCharArray ();
for (int i = 0; i <= DisplayMeArr.Length -1; ++i)
{
this.display.Text += DisplayMeArr [i];
Thread.Sleep (100);
}
this.display.Text += '\n';
}
}
编辑:这是一个独立于通过静态缓冲区对象提供数据的类
【问题讨论】:
-
看
Invoke(),即this.display.Invoke((MethodInvoker) delegate {this.display.Text += DisplayMeArr [i];}); -
您是否有机会查看以下问题? link
标签: c# multithreading winforms