BCB 串口接收 处理 显示数据,使用多线程速度变慢
大家好,我用BCB写的一个程序,串口接收数据,然后处理 ,再用logmemo显示处理;
之前用的单线程的,用timer 每50ms去接收一次数据,然后处理显示,速度很快,不会漏掉数据,但是有时候会造成主界面卡顿,其他操作不能进行;
现在我把处理数据和显示数据部分单独开一个线程,但是发现logMemo显示的时候很多数据丢失漏掉了;
以前单线程的程序结构:
timer() ///50ms
{
接收数据;
if (received 完成一次)
{
直接调用函数, 处理 显示数据;
}
}
我改的多线程程序结构如下,将数据处理和显示单独开一个线程,为了不影响主界面其他操作:
timer() ///50ms
{
接收数据;
if (received 完成一次)
{
threadProcess-> resume ; ///启动处理显示子线程
}
}
thread Execute() //// 处理显示数据子线程
{
while(!Terminaled)
{
数据处理部分
Synchronize(showresult); /// 同步显示
Suspend();
}
}
showresault()
{
....................
}
对多线程不太熟悉,不知道这样写有没有问题,请诸位大神帮忙看下大体的思路是否正确,这样的结构是否会造成速度变慢,感谢