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

达内培训:如何安全终止线程(一)

发布网友 发布时间:2022-04-29 13:56

我来回答

1个回答

热心网友 时间:2023-10-09 10:49

对于Worker线程,终止线程可以使用线程的退出码作为返回值从线程函数返回。 下面是达内培训老师为大家分享的具体内容,希望大家喜欢。 对于UI线程,因为有消息循环,需要发送一个WM_QUIT消息到线程的消息队列,当线程接收到WM_QUIT消息时退出消息循环。因此,结束线程可以在线程内部调用SDK的PostQuitMessage函数,发送WM_QUIT消息。 PostQuitMessage函数的定义如下: void PostQuitMessage(int nExitCode); 其中: nExitCode:线程的退出码。 MFC还提供了AfxEndThread函数,Worker线程和UI线程都可以通过在线程内部调用AfxEndThread函数结束线程。 AfxEndThread函数的定义如下: void AfxEndThread(UINT nExitCode, BOOL bDelete = TRUE); 其中: nExitCode:线程的退出码。 在MFC的THRDCORE.CPP中,AfxEndThread函数的相关代码如下: // THRDCORE.CPPvoid AFXAPI AfxEndThread(UINT nExitCode, BOOL bDelete){// remove current CWinThread object from memoryAFX_MODULE_THREAD_STATE* pState = AfxGetMoleThreadState();CWinThread* pThread = pState->m_pCurrentWinThread;if (pThread != NULL){ASSERT_VALID(pThread);ASSERT(pThread != AfxGetApp());// cleanup OLE if requiredif (pThread->m_lpfnOleTermOrFreeLib != NULL)(*pThread->m_lpfnOleTermOrFreeLib)(TRUE, FALSE);if (bDelete)pThread->Delete();pState->m_pCurrentWinThread = NULL;}// allow cleanup of any thread local objectsAfxTermThread();// allow C-runtime to cleanup, and exit the thread_endthreadex(nExitCode);} 从MFC代码中可以看出,AfxEndThread函数通过调用_endthreadex函数终止线程。此外,函数还进行释放线程的堆栈、删除线程对象等工作。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 2021平安三率是指哪三率 为什么借贷方都会是银行存款 android那个郑州大学论文代码有么有 品牌男鞋网店代理怎么做?男鞋网店免费代理方法 你好,我想请教一下如何在安卓课程表APP中添加一个备忘录功能,具体应该怎么实现,谢谢了 松香,焊接膏有什么作用,在什么情况下可以用(或才会用到)啊麻烦告诉我 怎么判断线程是否结束? 2021年平安三率是指哪三率 我想在网上给一个知名服装品牌做代理,开个网店我应该怎么做? 焊接剂多少时间达到高强度 可以制作课程表得软件有吗,安卓系统可以安装吗? c#里怎么结束线程 想做个android的课程表应该用什么数据库呢 用androidstudio怎么抓取课程表 vb.net中如何结束一个线程 银行对账单借贷方表示什么 下列属于平安建设“三率”的是什么 Andriod开发:一个关于课表的APP,如何实现课表导出到自带日历软件和同步功能。 如何安全终止线程 想做一个Android系统课程表手机软件开发,需要哪些教程,开发平台工具,给些推荐或参考网站? 找一个带有闹钟功能的安卓课程表软件有这么难吗??? 审计中银行存款的借贷方分析怎么做比较快 易语言结束指定进程的指定线程怎么写 平安三率包括哪些内容 交大安泰课程表怎么导入安卓手机啊? 在一张凭证中,会出现借贷方都是银行存款吗? 如果会.是在哪种情况下呢?求大神帮助 小手牵大手,携手创平安,平安建设三率知识问卷答案 c#线程中 终止线程怎么实现的? 谁知道怎么成为安踏和李宁乔丹等品牌的代理商,我说的是网店 Android实现一个列表,其中显示班级学号姓名 借贷方可以同时为"银行存款"吗? 急求当银行存款日记账的借贷方都为银行存款时该如何登记? 服装网店代理哪家好? 安卓开发都学什么? 仓山区“平安三率”测评知识我已详细阅读知悉,并志愿一同为“平安仓山”建设锦上添花。 班级接龙: 1 如何查看陌生人- 问一问 问:朋友做一服装品牌,我想做天猫旗舰店代理,该如何操作 苹果电脑输入数字变成符号了,数字怎么打不出来啊- 问一问 怎样查看好友的? 同花顺如何看主力仓位