| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:线程问题,如何能够通过线程id获取该线程的创建者线程
只看楼主 加入收藏
miller0113
Rank: 2
等 级:论坛游民
帖 子:8
专家分:22
注 册:2013-6-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
线程问题,如何能够通过线程id获取该线程的创建者线程
我的MFC程序里面需要调用外部的C程序,部分程序如下
void ABuffer::RequestBufferEvents(unsigned char id)
{
  ABufferEventMsg msg;
  msg.thread = HThreadSelf();  msg.id = id;
  bevList.push_back(msg);
  // send any events already missed
  for (int i = 1; i<=evCount; i++) HBufferEvent(msg.thread, msg.id);
}
问题是如何通过HBufferEvent(msg.thread, msg.id)函数,把消息发回mfc的app类?现在外部的c函数只能在子线程之间通信(我的程序包含MyMFCapp主线程、和创建的ARec、ACode、ABuffer几个子线程,现在几个子线程之间可以通信,MyMFCapp主程序接收不到消息),也就是我的app类里面接收不到,
想通过msg.thread这个线程获取它的创建者线程,或者当前windows下的主应用程序线程,然后通过HBufferEvent(msg.thread, msg.id)发送消息给MyMFCapp,不知道可不可以?请高手指教
搜索更多相关主题的帖子: already events 如何 通信 
2013-11-22 11:51
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:20 
子线程和主线程通讯还不简单?直接 send 一个message 不久可以了?
先学习下SendMessage
建立自定义消息 和消息函数

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-11-22 12:14
miller0113
Rank: 2
等 级:论坛游民
帖 子:8
专家分:22
注 册:2013-6-24
收藏
得分:0 
关键是不知道主线程id,没办法发送
void HBufferEvent(HThread thread, int bufferId)
{
#ifdef WIN32
   if (thread == NULL)
      HTError("HBufferEvent: null thread (bufferID=%d",bufferId);
   if (thread->status < THREAD_STOPPED) {
      while (!PostThreadMessage(thread->id,WM_HTBUFFER,bufferId,0))
         Sleep(10);
   }
这是发送消息的具体位置,PostThreadMessage函数需要主线程的id号,在这里没办法获取
2013-11-22 13:00
快速回复:线程问题,如何能够通过线程id获取该线程的创建者线程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014670 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved