|
楼主 |
发表于 2013-4-26 23:50:56
|
显示全部楼层
站长苏飞 发表于 2013-4-16 16:35
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread pingTask = new Thread(new ThreadStart(delegate
{
int n = comm.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据,声明数组长度为N
comm.Read(buf, 0, n);//读取缓冲数据,从0到N。
builder.Length = 0;//清除字符串构造器的内容
//因为要访问ui资源,所以需要使用invoke方式同步ui。 //代码,这样也是开启一个子线程
//this.Invoke((EventHandler)(delegate
//{
//直接按ASCII规则转换成字符串
builder.Append (Encoding.ASCII.GetString (buf ));
//追加的形式添加到文本框末端,并滚动到最后。
tGet.Text =builder.ToString () ;
//}));
}));
pingTask.Start();
}
这个是按你的意思修改的,飞哥帮忙看看有什么不妥吗0.0
这个是web窗体的后台 |
|