VC 在子线程中结束主窗口程序

在MFC 中,创建一个子线程,若想在子线程中退出主窗口程序,可使用PostMessage 向主窗口发送close 或者quit 消息。

BOOL CHandBoxComDlg::OnInitDialog()
{
    g_pThread= AfxBeginThread(ThreadRdFromHandBox, (LPVOID)this);
}

UINT ThreadRdFromHandBox(LPVOID pParam)
{
   CHandBoxComDlg* pParent=(CHandBoxComDlg*)pParam; 

   pParent->PostMessage(WM_CLOSE,NULL,NULL);//exit
}

原文地址:https://www.cnblogs.com/small-lazybee/p/12221881.html

时间: 2024-11-08 21:30:55

VC 在子线程中结束主窗口程序的相关文章

在子线程中操作主线程

当android启动Activity时,会先启动一个主线程(也称为UI线程),用于控制Activity的当前View界面,在主线程控制的过程中,子线程是不能直接更新主线程数据的,但是android中提供了很多其他线程操作UI线程的方法 方法一:Activity.runOnUiThread( Runnable) 这是一个在子线程中设置主线程中TextView的实例: NeedVerify.this.runOnUiThread(new Runnable() { public void run() {

C#主线程等待子线程运行结束

佐左佑右 原文 C#主线程等待子线程运行结束 由于主程序中调用matlab的dll文件进行计算要用较长的时间,主界面会有很长时间的卡顿,造成的用户感受十分不好,因此我想在调用时,将调用放入子线程中,然后在主线程中弹出一个提示框,显示数据正在加载,等子线程运行结束后,主线程继续工作. 使用的是http://hi.baidu.com/oktell/item/5527f51d93abb4a5feded5a8中所提到的方法,用了这篇文章中的第一个方式,即不带参数的. 之后在其中加入了显示和关闭提示框的代

android 不能在子线程中更新ui的讨论和分析

问题描述 做过android开发基本都遇见过ViewRootImpl$CalledFromWrongThreadException,上网一查,得到结果基本都是只能在主线程中更改ui,子线程要修改ui只能post到主线程或者使用handler之类.但是仔细看看exception的描述并不是这样的,"Only the original thread that created a view hierarchy can touch its views",只有创建该 view 布局层次的原始线程

Java主线程如何等待子线程执行结束(转)

工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程,  往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式. 站在 主线程的角度, 我们可以分为主动式和被动式. 主动式指主线主动去检测某个标志位, 判断子线程是否已经完成. 被动式指主线程被动的等待子线程的结束, 很明显, 比较符合人们的胃口. 就是你事情做完了, 你告诉我, 我汇

Delphi7从子线程中发送消息到主线程触发事件执行

[转载]Delphi7从子线程中发送消息到主线程触发事件执行 在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上(可视),同时进行日志处理等.我用的是下面的方法: [1]用到的API函数: RegisterWindowsMessage ---------------------- 函数功能:该函数定义一个新的窗口消息,该消息确保在系统中是唯一的.返

Java_如何等待子线程执行结束

工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程,  往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式. 站在 主线程的角度, 我们可以分为主动式和被动式. 主动式指主线主动去检测某个标志位, 判断子线程是否已经完成. 被动式指主线程被动的等待子线程的结束, 很明显, 比较符合人们的胃口. 就是你事情做完了, 你告诉我, 我汇

在子线程中创建新的窗体,遇到的问题。

场景: 服务端的应用程序创建了一个线程来接收客户端发来的消息,当接收到消息后,需要弹出一个新的窗体,作为响应操作等. 现象: 新创建的窗体呈现挂起.假死,或者一闪而过的现象. 原因: 新创建的响应窗体是由子线程创建的,而.net平台下,子线程执行完毕后,会自动释放资源,同样的,这个新创建的窗体也会被释放掉.若是这个线程处于监听或者一些其他的连续执行状态,那么,这个窗体就会出现假死状态. 解决方案: 可以在子线程中调用一个代码段,而这个代码段通过invoke方法回答主线程中去创建和现实Form2,

【iOS开发每日小笔记(九)】在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习. 一直想写一篇关于runloop学习有所得的文章,总是没有很好的例子.正巧自己的上线App Store的小游戏<跑酷好基友>(https://itunes.apple.com/us/app/pao-k

网络操作不能直接写在主线程中 以及 为什么不能在子线程中更新UI控件的属性

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //注意: 所有网络操作不能直接写在主线程中 因为所有的网络操作都是耗时的,如果加载到主线程中,会导致与用户的交互出现问题 ,所以要加载到子线程中 // [self loadImage]; [self performSelectorInBackground:@selector(loadImage) withObject:nil]; } //加