社区
进程/线程/DLL
帖子详情
请问线程间通讯的方法?
Renas2005
2005-04-24 11:09:11
一个主线程启动一个子线程
这个子线程如何向主线程发送一个消息呢 ?
我是用的控制台 没有窗口
...全文
254
23
打赏
收藏
请问线程间通讯的方法?
一个主线程启动一个子线程 这个子线程如何向主线程发送一个消息呢 ? 我是用的控制台 没有窗口
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Practise_Think
2005-04-25
打赏
举报
回复
就是NEW一个内存块,用指针传递给线程函数,然后拥有这个指针的各个线程均可对这个内存块读写,就是这样来通讯的.具体形式有很多,但这里得注意数据安全不要发生两个或以上线程同时一个读一个写的情况
Renas2005
2005-04-25
打赏
举报
回复
up
Renas2005
2005-04-25
打赏
举报
回复
扛不住了 睡觉去了先..
Renas2005
2005-04-25
打赏
举报
回复
因为线程函数里还要调用函数 ..是个调用链
所以必须传递this
怎么办?? 郁闷 >_<
Renas2005
2005-04-25
打赏
举报
回复
内存共享是怎么做的?
Renas2005
2005-04-25
打赏
举报
回复
如果用 的话 那个主线程的idThread是?
是不是要在主线程里有个循环
while( !done)
{
GetMessage(&tempMsg,NULL,0,0);
if(tempMsg.message ==1)
done=TRUE;
}
Practise_Think
2005-04-25
打赏
举报
回复
我常用的是内存共享!!
BigFanOfCpp
2005-04-25
打赏
举报
回复
控制台没有消息循环,怎么发消息,我一般还是用共享内存段或者内存映射文件。
xuzheng318
2005-04-25
打赏
举报
回复
PostThreadMessage
This function places a message in the message queue of the specified thread and then returns without waiting for the thread to process the message.
BOOL PostThreadMessage(
DWORD idThread,
UINT Msg,
WPARAM wParam,
LPARAM lParam );
Kudeet
2005-04-25
打赏
举报
回复
没有窗口的类一般是不能响应窗口消息,从ccmdtarget继承可以响应wm_command消息。线程的消息可以试试用postthreadmessage
Renas2005
2005-04-25
打赏
举报
回复
oyljerry(【勇敢的心】→ ㊣Fighting A za!㊣)
把this替换为线程ID传递进去
----------------------------------------------
如果不替换this还有没有办法把id传进去呢?
peterfly
2005-04-25
打赏
举报
回复
控制台怎么能响应消息呢?
an_bachelor
2005-04-25
打赏
举报
回复
在主线程里调用GetCurrentThreadId不久得到主线程的ID了么
oyljerry
2005-04-25
打赏
举报
回复
GetWindowThreadProcessId
DStoto2005
2005-04-25
打赏
举报
回复
上课归来
继续顶
主线程的ID 是什么?
DStoto2005
2005-04-25
打赏
举报
回复
上课去了 ..
DStoto2005
2005-04-25
打赏
举报
回复
那this被替换了 编译通不过 -_- 我又不想把线程函数写成全局的
如果写成窗口程序 是不是就不存在这种问题了?
ps:怎么求主线程的ID ?
oyljerry
2005-04-25
打赏
举报
回复
把this替换为线程ID传递进去
oyljerry
2005-04-25
打赏
举报
回复
共享内存,一般通过页文件来交换数据,可以进行大数据量的交换,效率高
一般通过消息来通知数据的读写
DStoto2005
2005-04-25
打赏
举报
回复
怎样把把主线程ID当做参数传递给子线程?
我的CreateThread是在一个类里面 所以传递的参数是
this 怎么办?
CreateThread(NULL, 0, MyThrd,
this, 0, &threadID);
加载更多回复(2)
线程
是如何
通讯
的?
线程
通讯
指的是多个
线程
之
间
通过共享内存或消息传递等方式来协调和同步它们的执行。在多
线程
编程中,通常会出现多个
线程
需要共同完成某个任务的情况,这时就需要
线程
之
间
进行
通讯
,以保证任务能够顺利地执行。
线程
通讯
的实现方式主要有以下两种:共享内存:多个
线程
可以访问同一个共享内存区域,通过读取和写入内存中的数据来进行
通讯
和同步。消息传递:多个
线程
之
间
通过消息队列、管道、信号量等机制来传递信息和同步状态。
线程
间
的
通讯
线程
是操作系统调度的最小单位,有自己的栈空
间
,可以按照既定的代码逐步的执行,但是如果每个
线程
间
都孤立的运行,那就会造资源浪费。所以在现实中,我们需要这些
线程
间
可以按照指定的规则共同完成一件任务,所以这些
线程
之
间
就需要互相协调,这个过程被称为
线程
的通信。
线程
间
的
通讯
定义:多个
线程
在操作同一份数据时,互相告知自己的状态,避免对同一共享变量的争夺。
线程
通讯
的方式主要可以分为三种方式,共享内存、消息传递和管道流。
线程
同步是
线程
之
间
按照⼀定的顺序执⾏,可以使⽤锁来实现达到
线程
同步,也就是在需要同步的代码块里加上关键
C#多
线程
开发-
线程
间
通讯
前言 在实际的开发过程中,经常需要使用很多子
线程
来实现某些功能需求,有时候当主
线程
分配的任务过多或做一些需要长时
间
等待和响应的工作时单独使用子
线程
来实现可能更好,可是当我们程序中的子
线程
太多的时候,有些需求就需要在
线程
之
间
进行
通讯
或者传递消息。那么对于C#来说,是如何实现
线程
间
通讯
的。 一、AutoResetEvent 介绍 AutoResetEvent表示信号量,可用于
线程
间
发送信号互相
通讯
,
线程
通过调用WaitOne来等待信号。 如果AutoResetEvent为非终止状态,则
线程
会被阻止,并等待当前控
linux
线程
及
线程
间
通讯
linux
线程
基本操作及
线程
间
通讯
线程
间
通讯
C++
线程
:进程的一个实体,是cpu调度和分配的基本单位。在单个程序中同时运行多个
线程
完成不同的工作,称为多
线程
。 进程:系统进行资源分配和调度的基本单位。进程是一个实体,每个进程都有自己的地址空
间
,程序成为一个活动的实体后我们称之为进程。
线程
通信:当多个
线程
共同操作共享的资源时,互相告知自己的状态以避免资源争夺。 ...
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章