MFC程序一切换输入法就卡死
最近编写了一个MFC的SDI程序,使用了多线程、SOCKET、OLEDB等技术,程序运行时只要切换输入法,程序就卡死,不管是用快捷键还是用鼠标选择的方法切换都试过,结果都一样;查看任务管理器CPU占用也是0%,其他程序运行正常,不知是什么原因。
在网上找了好久的资料,有一个好象有点相关:OS在切换输入法时会向线程发一个消息,而自己创建的子线程是没有消息循环的,重载了Run方法等,线程没有窗口,OS发消息给线程就会卡在这里;但为什么OS不发给主窗口消息呢,而且其他多线程程序都没有这个问题,所以怀疑是不是socket有问题,MFC的socket架构好象后台会启动一个线程,但用一个单纯的socket程序测试后不会出现这种情况。
现在不知哪位大侠帮忙指点一下迷津,本人十分感谢
在网上找了好久的资料,有一个好象有点相关:OS在切换输入法时会向线程发一个消息,而自己创建的子线程是没有消息循环的,重载了Run方法等,线程没有窗口,OS发消息给线程就会卡在这里;但为什么OS不发给主窗口消息呢,而且其他多线程程序都没有这个问题,所以怀疑是不是socket有问题,MFC的socket架构好象后台会启动一个线程,但用一个单纯的socket程序测试后不会出现这种情况。
现在不知哪位大侠帮忙指点一下迷津,本人十分感谢
...全文
相关推荐
多线程解决mfc对话框未响应、卡死问题
通过以上策略,我们可以有效解决MFC对话框未响应或卡死的问题,提高应用程序的用户体验。在实际开发中,还需要根据具体情况进行优化和调整,确保线程安全和程序的稳定运行。
VisualAssistX 2001-修复vs中文输入切换英文shift卡死bug
尝试通过按Shift键从中文输入法切换到英文输入法时,程序可能会出现卡死现象。
MFC解决大循环界面卡问题 示例代码 Demo
通过学习这个Demo,开发者可以了解到如何在MFC应用程序中有效地管理长任务,避免界面卡死,提高用户体验。
基于MFC编写的vc++聊天程序
多线程处理: 为了保证聊天程序的响应性和稳定性,可能会采用多线程技术。主线程负责用户界面更新,而其他线程处理网络通信,避免UI因网络延迟而卡死。
可配置mfc看门狗程序做多启动十个程序
它通过定期向被监控的程序发送特定的信号,如果程序在预设的时间内没有响应这个信号,看门狗就会认为程序可能已经卡死或者出现异常,然后执行预定的恢复策略,如重启程序。


进程/线程/DLL
