【发布时间】:2014-06-09 06:51:53
【问题描述】:
我正在使用 mod 总线协议从板上检索数据。现在我想一直以窗口形式更新数据。但是标签只有在我点击按钮时才会更新,我的编码有问题吗?
私人无效调用(){
do
{
RequestData(); //get data from mod bus
run(a.ToString());
} while (operation);
}
delegate void CallMethod(string Data);
private void run(string data) {
if (this.labelO2.InvokeRequired)
{
SetRichBoxCallBack d = new SetRichBoxCallBack(run);
this.Invoke(d, new object[] { data });
}
else {
labelO2.Text = data;
}
}
Thread thread;
private void button1_Click(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(Call));
thread.Start();
}
public void RequestData()
{
if (WriteSerialPort(setMessage, 0, 8))
{
Thread.Sleep(1000);
for (i = 0; i < 19; i++)
{
MM[i] = (byte)serialPortBoard.ReadByte();
}
a = MM[11] << 8 | MM[12];
b = (int)MM[13] << 8 | MM[14];
}
}
【问题讨论】:
-
线程调用在
button1_Click事件上?请尝试安排您的代码,它无处不在 -
我已经编辑过了。抱歉代码乱码
标签: c# multithreading