问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC++ 多线程

发布网友 发布时间:2022-04-24 17:02

我来回答

2个回答

热心网友 时间:2023-10-24 14:00

你要考虑到你开辟线程以后,如果线程还没执行到flag=false,那么此时flag还是true,但是主线程已经if(flag==true)了,你就死了。
你创建线程用的_beginthreadex函数是吧?(如果是_beginthread,请换成_beginthreadex),这个函数有返回值,可以强制转为HANDLE类型:
HANDLE hThread = (HANDLE) _beginthreadex(...);
然后这个hThread是可以等待的:
WaitForSingleObject(hThread, INFINITE);
线程结束之前,这个WaitForSingleObject函数不会返回。
等待完毕之后关闭HANDLE释放资源:
CloseHandle(hThread);

连起来就是:
for(....)
{
HANDLE hThread = (HANDLE) _beginthreadex(开辟线程;
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
}

线程函数里
{
线程函数内容;
return 0
}

热心网友 时间:2023-10-24 14:01

启动线程时会返回线程句柄。
使用API函数waitforsingleobject来等待线程结束。
有关waitforsingleobject的介绍
http://ke.baidu.com/view/908866.htm
第一个参数填线程句柄,第二个参数填超时值,如果填INFINITE则无限等待
这样的话不需要标志位。但主线程会在waitforsingleobject函数上阻塞。
如果不想被阻塞的话,可以使用消息机制。
线程函数里return 0;之前使用PostMessage对主线程的窗口发送自定义消息,通知主线程“我已经结束了”。然后主线程对该自定义消息的处理即是开启下一个新线程。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求想逗比的.4个字。 支付宝快捷登机可享受什么服务呢? 掌嘴怎么造句 春带彩的翡翠怎么辨别真假春带彩的翡翠辨别真假的方法 社会工作师的考试难度怎么样 社工证容易考下来吗 双层玻璃碎了一层能换吗?原因和更换步骤 直接支付和授权支付方式的区别与联系? 国库集中支付包括什么 老师你好事业单位的直接支付和授权支付怎么区分 vc++ 控制台多线程编写的问题,跪求高人解答! VC++多线程 VC编程中多线程同时写的问题 VC多线程操作 VC编程多线程问题 VC多线程 VC++ 最简单的多线程 作文大全里的我不明白吗.. VC++6.0编译器中怎么设置编译选项为多线程 谁给我写个vc++编写多线程的代码随便什么都行简单点最好 台式机插上音箱有类似耳鸣的声音,插上耳机后有电流声,这是不是和主机没接地线有关?我用耳机试了一下, 什么桌面音箱最好 有什么车不贵!改装又好看?又像跑车? 求手机那些隐藏的秘密 为什么耳机插进去会弹出来【急】 千元2.0桌面音箱需要配什么样的声卡? 用了好久的耳机坏了一只,一高声就炸。要换了,不知那个牌子好? 买头戴式耳机 如何判断耳机的好坏 请问世界上最贵的耳机是什么牌子? 关于VC++多线程 VC多线程是什么意思? VC 创建多线程的问题 VC多线程程序 怎么在vc中实现多线程 vc++ 多线程编程 SOCKET通信 VC 在线程中如何编写线程子函数 vc 多线程,简单的无限循环怎么编程 VC++ socket多线程编程问题 CAD二维转三维的快捷键是啥呢? cad二维转三维的快捷命令是什么? 能不能把CAD中的平面图转成三维图? CAD2007里面画好的二维图怎么转成三维图 如何在苹果手机上查找丢失的苹果手机 丢失的苹果怎么查找 湖南现在个体户经营所得税起征点是多少? 个体户起征点是多少 个体户税收起征点是多少? 个体工商户起征点 个体户起征点