这是我程序中关于串口监听线程的部分。
const
Wm_commnotify=Wm_User+1;
type
……
TComm=Class(TThread) //声明一个背景线程----串口监听
protected
procedure Execute;override;
end;
var
Form1: TForm1;
hCommFile,Post_Event: Thandle;
lpol: Poverlapped;
TimeOut:TCommTimeOuts;
implementation
……
Procedure TComm.Execute;
var
dwEvtMask: Dword;
Wait: Boolean;
Begin
fillchar(lpol,sizeof(toverlapped),0);
While True do
Begin
dwEvtMask:=0;
Wait:=WaitCommEvent(hCommFile,dwEvtMask,lpol);
if Wait Then
begin
waitforsingleobject(post_event,infinite);
resetevent(post_event);
PostMessage(Form1.Handle,WM_COMMNOTIFY,0,0);//向form1发送消息。你可以再写个消息响应事件。
end;
end;
End;
基本上就这部分了。以前在98/2000下,调试通过;现在没有再调试了。