一个串行通讯的程序,只要接收到串口信息(字符串)就把字符串append到FcomList(TstringList类型,只有Watch这个线程访问这个变量)中,然后调用 PostThreadMessage(Watch.ThreadID,UM_NewTask,0,0)向Watch线程发送新任务的消息,可是Watch线程有时截获不到这个消息,而且只要有一次截获不到以后就一直截获不到。请大家帮忙分析一下,先表示感谢
Watch线程中处理代码如下:
procedure TWatch.Execute;
var
i,j:integer;
m:MSG;
p:pchar;
begin
FreeOnTerminate:=True;
while Not Terminated do
if WaitMessage then
begin
if PeekMessage(m,0,0,0,PM_REMOVE) then
begin
if m.message=UM_Close then
break;
if (m.message=UM_NewTask) then
while FcomList.count>0 do
begin
//处理程序
end;
end;
end;
Terminate;
end;
Watch线程中处理代码如下:
procedure TWatch.Execute;
var
i,j:integer;
m:MSG;
p:pchar;
begin
FreeOnTerminate:=True;
while Not Terminated do
if WaitMessage then
begin
if PeekMessage(m,0,0,0,PM_REMOVE) then
begin
if m.message=UM_Close then
break;
if (m.message=UM_NewTask) then
while FcomList.count>0 do
begin
//处理程序
end;
end;
end;
Terminate;
end;
解决方案 »
- 如何用DELPHI开发 数据库系统开发平台
- 文件类型转换
- 一个得到整数的功能代码,急,大家帮帮忙,应该很简单的,希望高手给出代码,1:00就要用了,大家救我啊
- 如何显示gif文件
- 为什么说key=#13内型不匹配?
- 一个很容易得到的100分!快来啊 请问如何实现这样的效果
- 两个关于类的问题
- 在delphi中可以用TParam.Create的形式吗?
- 最近有个BS项目,找了点资料发现 WebXone 还行,特来问问大家的意见
- ****************dbgrid和query问题********************
- 按钮事件中加入一行文本改变执行语句怎么加
- delphi 三层开发接口基本版
死循环了?