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);


MFC 资源泄露引起的问题

MFC开发软件,注意内存泄漏和资源泄漏,此篇文章来谈谈资源泄漏引起的问题             1:资源泄漏引起的现象:              程序长时间运行,系统界面出现花屏现象,这就应该...
  • lixianjun913
  • lixianjun913
  • 2013-07-31 10:15:57
  • 814

一种不会导致资源泄露的“终止”线程的方法

在项目工程中,我们可能会使用第三方开发的模块。该模块提供一个接口用于完成非常复杂和耗时的工作。我们一般不会将该API放在UI线程中执行,而是启动一个线程,用工作线程去执行这个耗时的操作。(转载请指明出...
  • breaksoftware
  • breaksoftware
  • 2012-11-21 20:56:28
  • 2258

【转】Windows下资源泄漏检测

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

Linux服务器Socket资源泄露导致无法连接的问题

查看当前进程的堆使用情况: # jmap -histo:live 14416 | less  num     #instances         #bytes  class name -------...
  • sunny05296
  • sunny05296
  • 2017-03-30 20:14:13
  • 780

线程泄露问题解决(参考)

一、发现问题       生产环境,服务程序连续运行一段时间后(一般不超过一天时间)就会出现服务器卡顿,使用ssh远程登录都失败的情况。        初步分析认为,这种情况是服务器资源严重不足导...
  • lipc_
  • lipc_
  • 2016-07-15 16:12:12
  • 892

数据库消除连接泄露问题

考虑一个简单的语句序列: DataSource source=... Connection conn=source.getConnection(); Statement stat=conn.cr...
  • u012074791
  • u012074791
  • 2015-05-17 21:41:57
  • 980

关于Java的资源泄露

    刚刚看到了csdn主页上的一个Java内存泄露的帖子,帖子写的不错,不过似乎不是很完整。这个是内存泄露中的一种,也就是不是真的泄露了,而是没有及时收回,没有出现C中典型的再也找不到的内存的情况...
  • LoveVV99
  • LoveVV99
  • 2006-04-27 23:57:00
  • 1565

GDI资源泄漏导致的程序异常的解析

之前听说过,在编写代码时要注意及时释放申请来的GDI资源,以免产生GDI资源泄漏,导致程序异常。但是没有实际的体会,在今天晚上的小组讨论会上,大家谈到了这类话题,才真实的体会到GDI资源泄漏带来的种种...
  • chenlycly
  • chenlycly
  • 2012-05-16 22:35:57
  • 1400

Spring之防止连接泄露的处理办法

连接泄漏 在开发过程中直接连接数据库获取连接,使用完之后不进行及时的关闭连接,连接会一直处于激活状态,就会造成连接泄露,对系统和数据库都会带来一定的压力和负担。 我们写了一个方法让主线程睡眠的形式...
  • zt_fucker
  • zt_fucker
  • 2017-04-01 11:23:18
  • 706

句柄泄露

介绍   欢迎来到这个调试教程系列的第5篇。在这篇文章,我们会介绍Windows中的句柄,什么是句柄以及怎么调试句柄泄露。在读这篇文章之前,我希望你对前4篇文章掌握的都还不错。这一系列的文章并不是在...
  • maomao171314
  • maomao171314
  • 2014-07-31 14:51:10
  • 1720
收藏助手
不良信息举报
您举报文章:CreateProcess导致的资源泄漏
举报原因:
原因补充:

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