线程通讯问题 PostThreadMessage

432423423423 2011-03-09 01:49:30
c++ builder 线程怎么通讯? PostThreadMessage ,PostMessage可以用吗? 摆脱大侠给个相应的例子,学习下好不好?
千恩万谢!!!!!!!!
我用的是最基本的aplication模式,ui线程怎么设置啊?
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bosman 2011-03-19
  • 打赏
  • 举报
回复


PostThreadMessage(pThreadMsg->ThreadID,WM_OpenBet,0,0);

void __fastcall ThreadMsg::Execute()
{
MSG msg;
while(!Terminated&&GetMessage(&msg,NULL,0,0))
{
switch(msg.message)
{
case WM_Refresh:
;
break;
case WM_OpenBet:
;
break;
case WM_SubmitBet:
;
break;
}
}
}
铖邑 2011-03-18
  • 打赏
  • 举报
回复
UI线程实际上就是主线程,处理消息循环的。这个你可以看看MFC的一些资料,就会了解比较清楚了。
432423423423 2011-03-11
  • 打赏
  • 举报
回复
楼上的说的很好,给了我一种思路,谢谢。另外一个问题,c++ builder,ui线程是个什么东西?可能具体的说一说,形象化点。比如一个按钮事件里显示文字,这叫做ui线程吗?
上次问这个,给人bs了一顿。好丢人。。
土著巫师 2011-03-10
  • 打赏
  • 举报
回复
直接上两段代码给楼主,其实就是自建一个消息处理函数,在线程执行循环里检查消息做相应处理,因为是项目里的代码直接拿出来的,所以有些函数就没有代码给出了,重点是消息队列处理和线程执行主循环。
土著巫师 2011-03-10
  • 打赏
  • 举报
回复
void __fastcall TThreadManager::Execute(void)
{
try
{
while ( !Terminated )
{
if ( ProcessMessages() == false )
{
SleepEx(1, true);
}
}
}
catch(Exception &E)
{
NotifyScriptResult ( -3, E.Message );
}
catch(...)
{
NotifyScriptResult ( -4, "未知错误!" );
}
}
土著巫师 2011-03-10
  • 打赏
  • 举报
回复
bool __fastcall TThreadManager::ProcessMessages(void)
{
MSG Msg;

memset ( &Msg, 0x00, sizeof(MSG) );
if ( PeekMessage ( &Msg, 0, 0, 0, PM_REMOVE ) )
{
if ( Msg.message == WM_QUIT )
{
Terminate();
FTimer->Enabled = false;
}
else if ( Msg.message == WM_ProcessScript )
{
if ( FileExists ( FWinScpExeName ) )
{
if ( FileExists ( FScriptFileName ) )
{
ProcessScript();
}
else
{
NotifyScriptResult ( -2, L"没有发现FTP脚本文件:" + FScriptFileName );
}
}
else
{
NotifyScriptResult ( -1, L"没有发现FTP客户端程序:" + FWinScpExeName );
}
}
else
{
TranslateMessage ( &Msg );
DispatchMessage ( &Msg );
}

return true;
}

return false;
}
__lhy 2011-03-09
  • 打赏
  • 举报
回复
PosThreadMessage

thread PeekMessage
ccrun.com 2011-03-09
  • 打赏
  • 举报
回复
线程内部开辟一个消息池, 就可以响应PostThreadMessage发来的消息了.

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧