请教个问题,vc高手进入 在线等
串口发送数据帧,每帧数据间隔以
do
{
MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);
进行延时
每次发送数据量不等,但每帧数据长度一样,6个字节,发送也时间不等,比如连续发送不到1秒-4天,现在有问题是:
1.在串口发送中不断要有消息才能发送数据,比如不断摇摆鼠标等,猜测可能是在GetMessage(&msg,NULL,0,0);这儿等待,于是改为:
do
{
MSG msg;
if( GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);但跟上述情况一样。试问此种情况如何解决。别告诉我去掉msg处理部分,那样程序跟死机了一样。
2.如果在串口发送没有结束时关闭此程序后,任务管理器中还有程序进程在运行,试问如何彻底关闭发送进程。如何在OnDestroy中添加代码还是在其他部分添加代码
或许对于以上两个问题,各位有更好的思路,可以重新换种方法,请给点建设性的意见?