[求助]如何让线程1通知线程2退出,退出结束后给线程1一个消息? RT,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如:线程2中写成:while(IsExit){....}其中IsExit是一个全局变量,在线程1中让IsExit=FALSE;线程2就会退出在线程2退出时用PostThreadMessage发送线程消息给线程1 补充楼上,在线程1中,用GetMessage,等待线程2发送的消息到来 通过布尔变量让线程2退出,线程1中使用WaitForSingleObject可以接收到线程2退出的消息么? WaitForSingleObject可以用程序句柄获知线程是否退出。 GetExitCodeThread 检查线程是否退出 thrdControl.cpp文件中定义全局的static结构体,主线程中启动线程1,struct thrdInfo{HANDLE hThrd;int thrdState; //1继续运行 0停止运行}线程1收到信令111,启动线程2,并把线程句柄保存到结构体中,同时修改结构体中跟该线程对应的状态标记为1;线程2收到信令222,修改结构体中线程1的状态标记为0,并使用WaitForSigleObject等待线程2退出,然后释放句柄信息和SOCKET信息.线程2中主要循环:while(结果体状态标记为1) //无法检测到状态为0的标记{ 继续进行任务的处理...} thrdControl.cpp文件中定义全局的static结构体,主线程中启动线程1,线程1负责管理线程2的启动和停止.保存线程序句柄和状态信息的结构体:struct thrdInfo{HANDLE hThrd; //线程句柄int thrdState; //1继续运行;0停止运行}线程1收到信令111,启动线程2,并把线程句柄保存到结构体中,同时修改结构体中跟该线程对应的状态标记为1;线程1收到信令222,修改结构体中线程1的状态标记为0,并使用WaitForSigleObject等待线程2退出,然后释放句柄和SOCKET.线程2中的循环://线程状态为0时退出线程while(结果体状态标记为1) //无法检测到状态为0的标记{ 继续进行任务的处理...} 还需要执行ExitThread和WaitForSingleObject函数么? 线程222中有一段代码while(TRUE){ 线程222的状态标记在线程111中修改 if(线程222的状态标记为1) { 继续干活 并且修改同一结构体中别的参数 } else 状态标记为0 { return;工资为0,拒绝干活 }}碰到一个奇怪问题,if(线程状态标记为1){ }里面只执行一个弹出对话框时候,线程222能检测到状态为0,并且可以返回。但是让在if(){...}里面多干点活,接收数据包转发,并修改结构体中内容,就不知道返回了,也就是说,线程111把线程222的状态修改成0,它还在继续干活 游戏中的消息循环问题 关于ADO抛出异常问题 单步调试 结果正确 直接执行 结果不正确 COM组件编译问题 请问,关于命名管道的安全问题。 难道就不能用程序控制IE控件里面的按钮??我想去用程序点击里面的一个单选按钮,求教! 想问一下深圳什么时候哪里有IT类的专场招聘会 有关pe格式的问题 哪里有打包程序installshield for visual c++下载 如何创建一个新excel文件,并向其中写入数据。 大家有无使用过硬件加密狗的? 配合完成端口服务器程序用的sokcet客户端程序
while(IsExit)
{....
}
其中IsExit是一个全局变量,在线程1中让IsExit=FALSE;线程2就会退出
在线程2退出时用PostThreadMessage发送线程消息给线程1
主线程中启动线程1,
struct thrdInfo
{
HANDLE hThrd;
int thrdState; //1继续运行 0停止运行
}线程1收到信令111,启动线程2,并把线程句柄保存到结构体中,
同时修改结构体中跟该线程对应的状态标记为1;线程2收到信令222,修改结构体中线程1的状态标记为0,
并使用WaitForSigleObject等待线程2退出,
然后释放句柄信息和SOCKET信息.线程2中主要循环:
while(结果体状态标记为1) //无法检测到状态为0的标记
{
继续进行任务的处理...
}
主线程中启动线程1,线程1负责管理线程2的启动和停止.保存线程序句柄和状态信息的结构体:
struct thrdInfo
{
HANDLE hThrd; //线程句柄
int thrdState; //1继续运行;0停止运行
}线程1收到信令111,启动线程2,并把线程句柄保存到结构体中,
同时修改结构体中跟该线程对应的状态标记为1;线程1收到信令222,修改结构体中线程1的状态标记为0,
并使用WaitForSigleObject等待线程2退出,
然后释放句柄和SOCKET.线程2中的循环://线程状态为0时退出线程
while(结果体状态标记为1) //无法检测到状态为0的标记
{
继续进行任务的处理...
}
还需要执行ExitThread和WaitForSingleObject函数么?
while(TRUE)
{
线程222的状态标记在线程111中修改
if(线程222的状态标记为1)
{ 继续干活
并且修改同一结构体中别的参数
}
else 状态标记为0
{ return;工资为0,拒绝干活
}
}碰到一个奇怪问题,if(线程状态标记为1){ }里面只执行一个弹出对话框时候,
线程222能检测到状态为0,并且可以返回。但是让在if(){...}里面多干点活,接收数据包转发,并修改结构体中内容,就不知道返回了,
也就是说,线程111把线程222的状态修改成0,它还在继续干活