while GetMessage(MsgRec, 0, 0, 0) do
begin
TranslateMessage(MsgRec);
DispatchMessage(MsgRec);
//Sleep(1000);
if abool=true then Break;
end;当我发送了消息队列的时候,发送完之后,线程会处于休眠状态,这时候该怎么样做才可以让线程重新唤醒或者结束他呢?个人想法:
在主窗中插入一个定时器,然后在定时器执行的代码中写入
PostThreadMessage(ThreadId,WM_QUIT,0,0) //僵哥代码
到一定的时候就执行一下上面的代码让他退出他 而这时候的问题来了.
PostThreadMessage当中的Threadid参数我如何获得,从上面的循环中我看中了一个msgrec我是否能够替换Treadid呢?替换成下面的
PostThreadMessage(MsgRec,WM_QUIT,0,0)
替换后,我发现WM_QUIT出现提示
incompatible types: 'cardinal' and 'tagMsg'
简单来说就是类型不一样无法替换... 问题1:我在主窗体内写这样的代码会不会有其他的问题存在?
问题2:应该怎么解决休眠问题和如何传递参数到主窗体的定时器中 加前面的贴子一共三百分。。下了狠本了。。希望这一次能够解决了.....我知道僵哥不是贪分的人。这只是表示我的诚意。这个问题弄得太久了。再不弄好。可要被老板炒犹鱼了。。帮帮忙。。
begin
TranslateMessage(MsgRec);
DispatchMessage(MsgRec);
//Sleep(1000);
if abool=true then Break;
end;当我发送了消息队列的时候,发送完之后,线程会处于休眠状态,这时候该怎么样做才可以让线程重新唤醒或者结束他呢?个人想法:
在主窗中插入一个定时器,然后在定时器执行的代码中写入
PostThreadMessage(ThreadId,WM_QUIT,0,0) //僵哥代码
到一定的时候就执行一下上面的代码让他退出他 而这时候的问题来了.
PostThreadMessage当中的Threadid参数我如何获得,从上面的循环中我看中了一个msgrec我是否能够替换Treadid呢?替换成下面的
PostThreadMessage(MsgRec,WM_QUIT,0,0)
替换后,我发现WM_QUIT出现提示
incompatible types: 'cardinal' and 'tagMsg'
简单来说就是类型不一样无法替换... 问题1:我在主窗体内写这样的代码会不会有其他的问题存在?
问题2:应该怎么解决休眠问题和如何传递参数到主窗体的定时器中 加前面的贴子一共三百分。。下了狠本了。。希望这一次能够解决了.....我知道僵哥不是贪分的人。这只是表示我的诚意。这个问题弄得太久了。再不弄好。可要被老板炒犹鱼了。。帮帮忙。。
PostThreadMessage(TbeadID,WM_Quit,0,0); 这样好像就可以了。。