C#串口如何委托 UI界面
2个回答
展开全部
private void serialPort1_DataReceived(object sender,
SerialDataReceivedEventArgs e)
{
// 读取数据
byte[] buffer = new byte[1024];
int count = serialPort1.Read(buffer, 0, buffer.Length);
// 转换成16进制格式的字符串
string s = string.Empty;
for (int i = 0; i < count; i++)
{
s += string.Format("{0:x2} ", buffer[i]);
}
//在textBox1中显示
ShowData(s);
}
// 定义一个委托
delegate void ShowDataDelegate(string s);
private void ShowData(string s)
{
// 当跨线程刷新UI界面时
if (textBox1.InvokeRequired)
{
// 使用委托发出ShowData(s)调用
textBox1.Invoke(new ShowDataDelegate(ShowData), s);
// 返回
return;
}
// 使用委托发出的ShowData(s)调用会跳到这来执行:在textBox1中显示
textBox1.Text = s;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询