社区
进程/线程/DLL
帖子详情
怎么将类中线程中获得的数据传递给主程序
qinb
2004-10-29 03:37:19
类里启动了一个线程侦听某个端口,如果有数据传来就接受,并将该数据返回给主程序。
用的是win32控制台程序。
...全文
126
9
打赏
收藏
怎么将类中线程中获得的数据传递给主程序
类里启动了一个线程侦听某个端口,如果有数据传来就接受,并将该数据返回给主程序。 用的是win32控制台程序。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DentistryDoctor
2004-11-08
打赏
举报
回复
class CTestClass
{
static UINT TestFunc(LPVOID pUser)
{
return (reinterpret_cast<CTestClass*>(pUser))->TestProc();
}
UINT TestProc();
}
skylery
2004-11-08
打赏
举报
回复
DentistryDoctor
你說 "线程函数以类的指针作为参数,然后调类的一个成员函数。"
具体应该如何做?我现在想在线程函数中执行类的成员函数,好像不行.
oyljerry
2004-10-29
打赏
举报
回复
数据用临界区等保护,线程同步,保证数据的准确性
DentistryDoctor
2004-10-29
打赏
举报
回复
还有一种方法,就是线程函数以类的指针作为参数,然后调类的一个成员函数。
DentistryDoctor
2004-10-29
打赏
举报
回复
因为涉及到缓冲区,可能用消息不好。用临界区保护的缓冲区吧。
qinb
2004-10-29
打赏
举报
回复
win32中怎么发消息,我不会阿
qinb
2004-10-29
打赏
举报
回复
全局变量怎么定义?
会不会主函数中使用时,线程中正在改,引起冲突阿。
快乐鹦鹉
2004-10-29
打赏
举报
回复
全局变量或者发消息
老夏Max
2004-10-29
打赏
举报
回复
全局变量!
c++通过结构体(struct)全局变量在多
线程
中
传递
参数
目标:在一个
线程
运行的时候,
主程序
或者另一个
线程
,通过改变全局变量实时改变目标变量的做法,比如这里,楼主也就是我,为了在树莓派上运行一个tcp结构的客户端
线程
,并通过摄像头
线程
收集的
数据
实时的通过tcp客户端
线程
处理并发回服务端(这是只对两个
线程
间的
数据
传递
,多个
线程
间的话大家记得用上
线程
互斥锁,避免
数据
错误)
VB6.0_程序间DDE
传递
信息,
线程
操作
VB6.0 程序间DDE
传递
信息
线程
代码客:G-Socket(IOCP) 1.0 (Server/Client)例程源码+Server体验程序+强大的压力测试工具
结构层次及相互联系 (1)、工作
线程
:响应连接的IO投递返回并负责投递读请求,并将IO返回结果投递给处理
线程
,可设定参数决定工作
线程
数量; (2)、处理
线程
:处理
线程
调用回调函数将信息
传递
给应用层或协议栈,可设定参数决定工作处理数量; (3)、看守
线程
:响应Accept事件调用AcceptEx,检测连接和心跳超时 ,将信息投递给工作
线程
,模块仅有一个看守
线程
。 1. 技术要求 (1)、
线程
同步:Lock指令、临界段; (2)、主要Socket API:WSASend、WSARecv、AcceptEx、DisconnectEx; (3)、内存管理:连接池(句柄重用)、内存池; (4)、
数据
0拷贝:通过内置处理
线程
,上层应用可以避免自建
线程
池及复制
数据
的过程。同时提供GBuf内存分配功能,应用层
获得
分配地址及填充
数据
之后亦可直接投递给内核/驱动层; (5)、
数据
顺序同步:同一个连接同时只有一个处理
线程
响应其IO事件; (6)、IO请求投递:单投递读、多投递写; (7)、0缓冲读投递:可条件编译实现,以适用大规模连接要求。 (8)、超时机制:可设置空连接(连接不发送
数据
)超时时间以防止DOS攻击,也可设置心跳超时时间防止网络故障导致的现有连接成为虚连接避免耗尽系统资源。 (9)、接口技术:API、回调函数、客户句柄(客户连接句柄)。 (10)、主、被动发送:不使用HASH、MAP及LIST技术,即可提供安全可靠高效的客户连接句柄,以实现服务器端主被动发送
数据
功能; (11)、PerHandleData的回收不以IO投递的计数器或链表来做依据但仍能安全回收,同时尽量避免在高频的读写操作时做其他无关的操作以提高读写效率。 (12)、处理
线程
和工作
线程
有着良好分工界限,繁重的工作交给处理
线程
完成,工作
线程
工作量最大限度的减少,仅响应投递返回及读投递的操作; (13)、支持AWE,模块自动识别AWE是否开启(需手动开启),“否”则使用虚拟内存机制。 2. 功能要求 (1)、多IP多端口监听,每个监听可设置不同的回调函数,以高效的区别处理
数据
(2)、可设置每秒最大的连接并发量和空连接(连接不发
数据
)超时时间以防止DOS攻击造成的服务瘫痪、具有心跳处理(防网络异常造成的虚连接)功能 (3)、不加协议的透明传输,可适用广泛的网络通讯环境 (4)、可现实主、被动发送
数据
,但不会因兼顾主动发送而额外增加降低效率的工作 (5)、内置处理
线程
,上层应用可不必自建
线程
池处理
数据
,所有IO事件按顺序调用回调函数并可以在回调函数内直接处理
数据
,不必担心多
线程
造成的接收
数据
乱序的问题。 (6)、高效率的
数据
对应关联机制,在初次连接并根据登录
数据
设置每个连接对应的宿主(Owner)之后,再接收的
数据
即可立即
获得
该连接对应的宿主,而不必再做额外的查询工作,并且模块内部采用的是指针关联方式,对于长连接、主动发送的服务器系统而言是高效率的。 (7)、可兼容IPv6 3. 注意事项 因硬件环境和应用环境不同,不合理的配置会出现效率及性能上的问题,因此以下情况出现时,请务必与作者联系以确保
获得
更好的参数配置: (1)、连接量超过1000个的。超过的应结合具体硬件配置和网络带宽等因素综合设定运行参数。 (2)、带宽使用率超过20%的。工作
线程
和处理
线程
数量的设置也是综合考虑
数据
吞吐量和
数据
处理负载的因素来设置的,过多的
线程
会在调度上浪费时间,同时也应该综合考虑
线程
优先级别来设置工作
线程
和处理
线程
数量,两者的设置也不一定能相等。 (3)、服务器端有主动发送需求的、短连接(含网络故障造成的连接断开)出现频率高的。 压力测试工具介绍: 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集
数据
包,包括即时和定时发送,1M的光纤带宽最大可以达到100K/S(单向)以上,100M本地网最大可以达到10M/S(单向)以上 四、
数据
发送仅由一个独立
线程
但当,每点击一次Connect就创建一个
线程
根据当前参数发起连接。 五、 测试前提:服务器接收客户端
数据
后立即原样返回给客户端
python 利用Queue简单实现
线程
到
主程序
的信息
传递
问题如下:在
主程序
中
定义两个
线程
A和B,现要求将
线程
A
中
的信息传给B的变量。 事实上,利用Queue,可以解决python函数传入tk.StringVar按值
传递
的问题:想要在函数体内改变tk.StringVar的值,但是直接将其传入会复制一份tk.StringVar,而不是原来的那个tk.StringVar。 如果不把tk.StringVar提升为跨脚本的全局变量,还有什么办法呢? 答案就是利用Queue,在
主程序
里定义一个queue,将queue作为参数(这时,queue为一个可变对象,python会做
主程序
与子程序之间的参数
传递
的四种方法
主程序
调用子程序是,往往需要向子程序
传递
一些参数,同样,子程序运行的时候也需要把一些结果参数传回给
主程序
,
主程序
与子程序之间的这种信息
传递
称为参数
传递
,我们把
主程序
传给子存续的参数称为子程序的入口参数,把由子程序传给
主程序
的参数称为子程序的出口参数 有多种
传递
参数的方法,寄存器
传递
法,约定内存单元
传递
法,堆栈
传递
法和CALL后续
传递
法 4.2.1利用寄存器
传递
参数 利用寄存器
传递
参数就是把参...
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章