我正在研究通过COM端口与另一台设备通信的项目.对于传入数据,我使用VaComm1RXchar事件,在那里我将消息存储到数组中并增加msgIndex,它表示消息数.
然后我调用我使用此消息的函数.
在这个函数内部是这个超时周期,我等待这个消息:
while MsgIndex < 1 do
begin
stop := GetTickCount;
if (stop - start)> timeout then
begin
MessageBox(0, 'Timeout komunikace !', 'Komunikace', MB_OK);
exit(false);
end;
sleep(10);
end;
Run Code Online (Sandbox Code Playgroud)
对我来说奇怪的是,当它像上面这样时,它总是以超时结束.但是当我在此之前放置一个ShowMessage('Waiting')然后它正确地工作.
有谁知道是什么原因造成的,我该如何解决?提前致谢!