C#编写串口数据收发程序,收发频繁,求教多线程处理机制!

问题描述

C#编写串口数据收发程序,收发频繁,求教多线程处理机制!

C#编写串口数据收发程序,点击界面按钮发送指令数据,等待接收返回的数据,此外还有周期性数据需要不断接收;接收到的数据要判断重复帧和是否是最后一帧,然后去掉帧头帧尾并显示在界面控件内;目前程序开了三个线程:接收、处理、发送,三个线程都是一直循环判断指针是否有更新,但这样导致界面切换太卡,请问该怎么处理这三个线程之间的关系才能使界面切换流畅呢,初学C#,如果能给出具体修改代码方法更佳,请大神帮帮忙啊~急!

解决方案

不要过度同步UI线程,不要把耗时的代码写在UI线程。

时间: 2024-09-19 09:59:48

C#编写串口数据收发程序,收发频繁,求教多线程处理机制!的相关文章

java rxtx包串口开发 长时间收发 (10分钟左右,100毫秒一次),数据出现较小错误

问题描述 java rxtx包串口开发 长时间收发 (10分钟左右,100毫秒一次),数据出现较小错误 我使用了RXTX包进行了JAVA串口开发,发现错误后我用JAVA是COM1 COM3对发,结果 得到的数据在10多分钟运行后就开始有不是很正确的发送 ,比如每行多一个不知道哪来的字符 或者多个换行符什么的 ...我是在WINDOWS XP系统下使用的 ...求大神帮助

方法-只有一台电脑怎么测试一个局域网收发数据的程序

问题描述 只有一台电脑怎么测试一个局域网收发数据的程序 如题目,小弟自己写了个仿飞鸽传书的局域网收发数据的程序,在自己本地电脑上测试用本地回环地址测试没有问题, 我现在就是想测试局域网中,可以好使不?但是我只有一台电脑,请问各位大牛们,有什么办法可以一台电脑模拟成2台电脑或者什么的方法可以测试这个程序么? 解决方案 嗯 我有虚拟机 上面有一个XP的系统 我自己点奥window7的 请问 一个虚拟机 一个本地window7 可以测么? 解决方案二: 方法1.找你身边的同学一起测试? 方法2.安装V

串口通信-有关线程收发串口数据的问题

问题描述 有关线程收发串口数据的问题 最近写一个项目里面用到的是基于串口通信的. 由于我需要一直处于接收数据状态,并且可以随时发送数据(我的串口是RS232,支持全双工),于是想到了用两个线程去做. 一个处于收状态,一个发包用. 现在的问题是:我只有一个SerialPort对象 ,通过跨类的信号和槽得到这个对象,但是一放在线程的run函数读写就会报错. 我曾想过把串口的设置和连接放在线程类里面做,但是我这边两个线程呢,一个链接的话,端口就会被占用,另外一个线程就没法连接 困了一天了 不知道该怎么

试编写一串行通信的数据发送程序

问题描述 试编写一串行通信的数据发送程序 试编写一串行通信的数据发送程序,发送片内RAM的20H-2FH单元的16字节数据,串行接口方式设定为方式2,采用偶校验方式.设晶振频率为6MHz. 解决方案 http://www.njliaohua.com/lhd_03c8w5lrwt68ub00wplt_5.html 解决方案二: 51 单片机UART 串口通信[ 方式1 ]实现

在CB6下基于api函数编写串口通信程序简介

1-在C++ Builder 6.0下基于api函数编写串口通信程序简介: 在dos/win95/win98的年代,操作系统对串口是不保护的,也就是说将串口的的资源完全开放给用户,用户可以用直接操作硬件的函数(比如说TC2.0下的inport()和outport()函数) 跟串口直接打交道,这时候用户使用直接操作串口的函数怎样"折磨"串口都是没有问题的,操作系统根本就不管不问,对串口操作所造成的一切后果都是用户一个人承担的,这时候用户对串口具有高度自由的支配权:但是,这种情况好景不长,

通过自己编写的C语言程序获取lcm正常格式的初始化数据代码

1正常格式初始化数据的C代码 2供应商给的lcm初始化数据 3编写的语言程序获取lcm正常格式的初始化数据代码 4获取lcm正常格式的初始化数据代码 注:为了保护供应商lcm初始化数据,下面的数据都是做参考的假数据. 1正常格式初始化数据的C代码 lcm正常格式的初始化数据的C代码是下面那样的.是一个结构体数组,每一个元素都包括三个基本数据,分别是寄存器地址.参数个数和对应的参数. static struct LCM_setting_table lcm_initialization_settin

C#编写的监测软件,读多个串口数据,运行一段时间死机死机,挑时候出现“outofmemoryexception”异常

问题描述 读取串口数据的方式采用事件触发,具体代码如下:void_serialPort_DataReceived_LG(objectsender,SerialDataReceivedEventArgse){//禁止接收事件时直接退出if(ReceiveEventFlag){return;}try{stringreadstr=null;intn=_serialPort.BytesToRead;byte[]buff=newbyte[n];_serialPort.Read(buff,0,n);read

usb转串口-安卓读取串口数据时read阻塞,程序不能向下进行

问题描述 安卓读取串口数据时read阻塞,程序不能向下进行 用安卓 通过串口读取单片机发来的数据时,用inputstream.read()去读取数据时会发生阻塞,程序就卡在read()函数不能往下运行了,我是用的网上来源的serial_port_api,,,本人新手做项目卡在这了,求大神指导一下!!感谢

编写串口 使用MSCOM控件 程序老是报异常 请教是什么原因

问题描述 我第一次编写串口使用VS2010中MSCOM控件程序老是报异常请教是什么原因以下是源代码privateobjectobj;privatebyte[]datas;privatestringdata;privatevoidaxMSComm1_OnComm(objectsender,EventArgse){axMSComm1.InputMode=MSCommLib.InputModeConstants.comInputModeBinary;axMSComm1.InputLen=0;obj=a