我的主要流程:
public void quoteStartReceive()
{
Thread thdWrite = new Thread(new ThreadStart(DoParseGUIDisplay));
thdWrite.IsBackground = true;
thdWrite.Start();
}
我的线程功能:
void DoParseGUIDisplay()
{
for (int i = 0; i < 1024; i++)
{
if (myQueue.Count > 0)
{
string strOut = myQueue.Dequeue().ToString();
Tick tick = new Tick(strOut);
if (tick.m_last != "")
{
string msg = "Update Text";
if (this.textBox1.InvokeRequired)
{
this.textBox1.BeginInvoke((MethosInvoker)delegate () {this.textBox1.Text = msg; };
}
else
{
this.textBox1.Text = msg;
}
}
}
}
}
无论我尝试使用Invoke()还是BeginInvoke(),我都无法更新textBox1中的文本。 我也尝试了另一种方式:
public delegate void UpdateTextCallback(string text);
我仍无法帮助我更新textBox1。
帮助我找出我错过的东西。感谢。
答案 0 :(得分:0)
在线程前加上一个参数:
Application.DoEvents();
并且应该在更新m_last之后放置。