zoukankan      html  css  js  c++  java
  • 【转】 VC++ 关闭程序后任务管理器进程中进程仍然存在的解决方法

      转载出处:http://blog.csdn.net/zac_sian/article/details/50809084

      可以从以下两个方面进行查找!
      1、程序开启了进程,进程中使用了while(1),在程序退出时未能关闭该线程
      解决方法: 在主进程类的析构函数结束该线程

      2、程序的消息队列未销毁引起
      使用了GetMessage创建了消息队列,但在程序退出时没有及时处理完消息
    解决方法: 将 GetMessage 的最后一个参数设置为PM_REMOVE,即每次处理完消息队列中的消息后即刻从消息队列中销毁该消息

      小结:
      我编程中遇到的问题就属于第二种情况,刚开始从检查全局变量是否在退出时被释放时查起,接着检查了上述的情况1,发现进程还是在任务管理器中存在,最后在调试程序中发现向GetMessage 所在的线程发送了一次某个消息,处理完后发现GetMessage 始终还能继续接收该消息[按理接收一次后下次GetMessage就不会再收到该消息了,所有怀疑是该消息在处理完后没有被销毁,始终存留在消息队列中,导致GetMessage 不停从消息队列中提取该消息。 经过确认发现,是将该函数的最后一个参数设置为NULL引起,改为PM_REMOVE后问题解决

      参考http://blog.csdn.net/yl2isoft/article/details/38168939

  • 相关阅读:
    WHENEVER SQLERROR EXIT AND DDL
    WHENEVER SQLERROR EXIT AND DML
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
  • 原文地址:https://www.cnblogs.com/MakeView660/p/7727776.html
Copyright © 2011-2022 走看看