我在MFC中主线程启动了一个子线程,但启动以后主线程反而不动了

在子线程里面调用了一个对话框,子线程要处理数据并同时更新对话框里面的进度条。但子线程一启动后主线程界面和子线程的对话框就动不了了,只有进度条还在动。我还想在这个子线程处理的时候启动其他的子线程啊,这可怎么办
补充一下,我用的是工作者线程,不是UI,因为子线程对话框里没要求用户输入或者按键。

多开一个线程 专门去显示模态对话框 使用同步机制进行同步 具体可以查MFC 多线程同步
工作线程 向UI放送消息推动进度条的前进
温馨提示:内容为网友见解,仅供参考
无其他回答

VC创建子线程,返回后主进程也结束了?
1. 按下对话框上的 ‘确定’或‘取消’按钮,他会执行对话框类里的虚函数OnOk 或 OnCancel函数,这2个函数都会使对话框退出。2.按下了窗口'x'按钮,这个和‘取消’差不多。3.ctrl+alt+del 强行关闭 4.其他非正当错误(比如内存错误,有错误提示)导致的程序崩溃退出。5.线程发送消息告知主线程...

按键精灵主线程停了子线程怎么还在运行
子线程是独立于主线程之外的另一个线程。根据查询百度经验得知,在按键精灵中,启动某个线程后,主线程停止了并不意味着子线程也会停止,因为子线程是独立于主线程之外的另一个线程,具有独立的执行栈和执行空间。同时需要注意多线程之间的同步和数据传递。按键精灵是一款模拟鼠标键盘动作的软件。通过制作脚...

主线程和子线程结束的关系
程序启动后,主线程就开始,在主线程中新建t,并在启动t后,将之加入(join())主线程流程中,所以t会先执行完毕,主线程才会继续原来的流程。有时候加入的线程可能处理太久,我们可以设定该线程的处理时间,方法就是给join()传入一个整数值n(单位毫秒),表示加入的流程至多可处理n毫秒,过了这个时...

VC中MFC创建了多线程,界面怎么还会有卡死现象,但程序在正确执行(可以执 ...
主线程的Sleep时间太长了

MFC 如何在主线程中判断子线程是否运行,运行则关闭子线程?
还没弄好?之前和你说过了,其实就是WaitForSingleObject和CEvent,对于MFC,使用Afx方式创建线程有系列的方法可用,只要你保存了这个指针或句柄。给你找了一段例程序,这里包含了判断和外部结束的全部方法,你不一定要创建这个类,只要保留CWinThread指针即可。class CScrCapThread : public CWinThread{CEvent ...

java中开启子线程后主线程中传入的变量不变
在主线程中对类C的实变量进行设置,然后输出变量开启子线程,通过构造函数传入变量,在子线程中改变变量的值子线程中调用主线程的静态方法传递数据给主线程说明子线程执行结束子线程结束后在主线程中查看变量已经发生改变。每个线程都有一个唯一标示符,来区分线程中的主次关系的说法, 线程唯一标示符,Thread...

关于MFC中创建线程,并使其在启动时执行。
p );启动线程: AfxBeginThread( Work, this );对话框模式的,就是oninitialdialog里使用 SDI,MDI的就是CMainFrame 的oncreate中启用即可。最后在析构的时候还要停止线程。这个就有很多种方法了。可以在线程函数里自己加一些标志可实现程序在退出的时候自动停止线程。也可用TerminateThread强制结束线程。

MFC多线程主线程和新建线程执行关系
首先强调一点:你这里有主线程和和新建线程,它们都存在于你这个程序的进程里,这个问题没涉及主进程、子进程什么的,进程和线程的概念千万别弄混。即使新建线程没用Sleep函数,界面照样不能即时响应新建线程更新界面的操作。Windows的线程可分为UI线程和工作线程,主线程是UI线程,负责一切响应用户输入和绘制...

MFC编程,如何得知一个进程活着线程是否退出
添加对WM_CLOSE消息的处理代码就可以知道程序什么时候要关闭了。写文件的时候系统不直接把内容写到文件中的而是放在系统缓冲区中。系统会在你关闭文件的时候再把缓冲区中的内容写到文件中,你也可以手动把缓冲区中的内容“更新”到文件中 可以使用以下函数 c函数 fflush()c++SDK函数FlushFileBuffers()C++ ...

...一个子线程,那么它们是先执行主线程还是子线程?
主线程就是main()方法,是最先执行的,然后创建一个子线程,这两个线程就会同时执行,但互不影响!执行过程就像你同时和两个人聊QQ,一会和他说两句,一会再和他说两句,互不相干,但同一时间你只可能和一个人聊天!懂不

相似回答