CreateProcess导致的资源泄漏

原创 2008年10月14日 09:34:00

代码如下:
  1. // create process and wait for quiting
  2. bool XXXX::RunProcess(const std::string& command)
  3. {
  4.     PROCESS_INFORMATION pi;
  5.     STARTUPINFOA startInfo;
  6.     memset(&startInfo, 0, sizeof(STARTUPINFO));
  7.     startInfo.cb = sizeof(STARTUPINFO);
  8.     startInfo.wShowWindow = SW_HIDE;
  9.     startInfo.dwFlags = STARTF_USESHOWWINDOW;
  10.     // create process
  11.     if (!CreateProcessA( NULL, (LPSTR)command.c_str(), NULL, NULL, TRUE, 0, NULL, NULL, &startInfo, π))
  12.     {
  13.         return false;
  14.     }
  15.     WaitForSingleObject(pi.hProcess, INFINITE);
  16.     return true;
  17. }
因为这段代码是定时被调用,运行一段时间后,用ProcessExplorer发现有大量Thread和Process的handle泄漏。
CreateProcess会创建一个Thread和Process来运行指定的程序,所以在程序运行结束后需要释放这两个handle。

需要要在return之前添加以下代码来释放资源:
  1.     CloseHandle(pi.hProcess);
  2.     CloseHandle(pi.hThread);


关于Android VideoView导致的内存泄漏的问题

今天用 leakcanary 时发现用VideoView的 activity 出现泄漏,捕获到如下的信息,简单说就是 android M(6.0)以前AudioManager用的Context是 当前...
  • acerhphp
  • acerhphp
  • 2017年03月17日 15:46
  • 3056

echarts配合循环计时器等出现的内存泄漏

echarts是百度的一个图表插件,确实好用美观。   之前实习接触到的页面大多是下面这种调用方式 var chart=echarts.init(document.getElementById...
  • wxkongkong
  • wxkongkong
  • 2017年05月25日 14:46
  • 1556

MediaPlayer源码存在的内存泄漏问题,释放资源的正确方式

最近完成了一个联网的视频播放器Demo,闲来无聊,尝试了一下LeakCanary,一款Android查看内存泄漏的工具。使用方式 https://www.liaohuqiu.net/cn/post...
  • sdfdzx
  • sdfdzx
  • 2017年03月03日 18:49
  • 3199

volley中的内存泄露

今天对终于写好的APP进行测试时,发现有严重的内存泄露。使用LeakCanary分析,发现是volley引起的。 参考http://www.jianshu.com/p/c87677f01ed5和ht...
  • qq_32199531
  • qq_32199531
  • 2017年01月16日 18:57
  • 471

【转】Windows下资源泄漏检测

http://hi.baidu.com/doudou745/item/a26e0e26e6c9dfd3a417b604 【转】Windows下资源泄漏检测 前言...
  • love_hot_girl
  • love_hot_girl
  • 2014年04月09日 23:32
  • 650

CreateThread 创建线程所引起的内存泄漏的问题

内存泄漏编辑 在很多参考书上,都说不要用CreateThread 创建线程、并用CloseHandle来关闭这个线程,因为这样做会导致内存泄漏,而应该用_beginthread来创建线程,_en...
  • hkwlg1314
  • hkwlg1314
  • 2015年10月26日 21:19
  • 1120

用正确的姿势来说说Android上的内存泄漏问题

用正确的姿势来说说Android上的内存泄漏问题相信大家对[App的内存管理][6]都是相当关心的,在项目上线前的几天时间也会借助相关工具突击下严重的泄漏问题;针对内存泄漏先提出几个疑问 什么是内存泄...
  • hongbingfans
  • hongbingfans
  • 2016年07月12日 19:13
  • 922

内存泄漏原因概览

1、静态变量导致内存泄漏Activity的Context或this被赋值给一个类的静态变量,因为静态变量时类变量,除非该类在虚拟机中被卸载,否则,Activity永远被强引用,不会被GC掉。2、属性动...
  • dw4SK
  • dw4SK
  • 2016年08月05日 22:06
  • 810

Android内存泄漏产生的原因以及解决方案(OOM)

为什么会有内存泄漏? 一个不会被使用的对象,因为另一个正在使用的对象持有该对象的引用,导致它不能正常被回收,而停留在堆内存中,内存泄漏就产生了 Android系统为每个应用分配的内存是有限的,内存...
  • u012181885
  • u012181885
  • 2016年09月04日 15:48
  • 566

Android内存泄漏产生的6大原因

1.资源对象没关闭造成的内存泄漏 描述: 资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于 ...
  • MYBOYER
  • MYBOYER
  • 2015年02月28日 13:00
  • 1583
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CreateProcess导致的资源泄漏
举报原因:
原因补充:

(最多只允许输入30个字)