请教线程之间如何通信,怎么传递变量 不是窗口之间传递消息是线程就象操作系统理论里面的用消息传递来解决IPC问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IPC是个与OS密切相关的话题,如果你用Windows,有许多机制用于IPC,象文件映射等。 侬可以从MSDN中找到一打IPC通信的方法! 如果变量是基本数据类型,象整型、浮点型等,可以发送自定义消息来代替复杂的IPC 用API的命名管道即可对内存进行读取即可 创建worker thread的时候给他一个struct的指针,指向自定义的数据结构然后在主 thread和worker thread就都可以对此struct进行读写双方都可以通过读写查询互相通知不过千万注意加锁。 如果你想使用自定义message,那么只能实现单方向的传递信息定义自定义message(如401)在main window的message handle里面用case处理这个message在worker thread里面post message但是主thread有消息就不能通知worker thread了啊建议你还是把要做的工作描述细致一点,看看可不可以通过call back来做 你可以先用new 分配空间,把它当发送消息的参数发送另个线程,在线程中收到后delete 关键是我不太熟悉windows线程之间的消息传递,能不能具体介绍一下 发送线程消息:PostThreadMessage消息所带参数可以是你的变量进行强制类型转换。如果两个线程不属于同一个进程,除非佻的变量是基本数据类型(字符串除外),不能作为消息的参数传过去,因为变量处在不同的进程空间,这时就必须考虑IPC方法了。 接收线程自定义消息:如果你是用API编程,只要在该线程的主程序(对主线程就是WinMain)的消息循环中判断之即可。如果用MFC,则在CWinApp(主线程)或CWinThread类中用ON_THREAD_MESSAGE宏作消息影射。 还是用全局变量吧Simply is best!简单的就是最好的又注意初始化和reset前几天我还在为这个事烦心呢 有几种方式:1。全局变量2。时间EVENT3。消息MESSAGE具体可以在网上查。有专门详细介绍的文章 PostThreadMessage传递消息如何在另外的线程里获得 在另外的线程里建立消息循环.下面函数具体的参数类型请参看msdn.While( ::GetMessage() ){ ::TranslateMessage(); ::DispatchMessage();} PostThreadMessage传递消息如何在另外的线程里获得 接收线程自定义消息:如果你是用API编程,只要在该线程的主程序(对主线程就是WinMain)的消息循环中判断之即可。如果用MFC,则在CWinApp(主线程)或CWinThread类中用ON_THREAD_MESSAGE宏作消息影射。 VS2010下关于Cstring调用读取注册表出错·· 如何输出文件名gt000928.bmp 关于Windows核心编程 如何用DX来写后备缓存区? 我想在MFC中自画滚动条(CScrollBar),我应该怎么做,请高手指点,急!! 如何在ATL程序中创建可以docking的对话框? 利用Socket多线程传输大文件,我搞不定啊!(会不断加分) cvNamedWindow产生的对话框,点击右上角的X响应的消息是什么 各位高手帮忙看一下#¥%…… 怎样写一个WDM驱动程序 FAT32文件分配表的格式是怎样的?要详细的. 送分:哪里能搞到 sp3 for vc6.0
对内存进行读取即可
定义自定义message(如401)
在main window的message handle里面用case处理这个message
在worker thread里面post message但是主thread有消息就不能通知worker thread了啊建议你还是把要做的工作描述细致一点,看看可不可以通过call back来做
消息所带参数可以是你的变量进行强制类型转换。
如果两个线程不属于同一个进程,除非佻的变量是基本数据类型(字符串除外),不能作为消息的参数传过去,因为变量处在不同的进程空间,这时就必须考虑IPC方法了。
如果你是用API编程,只要在该线程的主程序(对主线程就是WinMain)的消息循环中判断之即可。
如果用MFC,则在CWinApp(主线程)或CWinThread类中用ON_THREAD_MESSAGE宏作消息影射。
Simply is best!
简单的就是最好的又注意初始化和reset
前几天我还在为这个事烦心呢
1。全局变量
2。时间EVENT
3。消息MESSAGE
具体可以在网上查。有专门详细介绍的文章
下面函数具体的参数类型请参看msdn.
While( ::GetMessage() )
{
::TranslateMessage();
::DispatchMessage();
}
接收线程自定义消息:
如果你是用API编程,只要在该线程的主程序(对主线程就是WinMain)的消息循环中判断之即可。
如果用MFC,则在CWinApp(主线程)或CWinThread类中用ON_THREAD_MESSAGE宏作消息影射。