想清理一些资源,怎样做比较好。

clientwyc 2003-09-05 07:28:25
我想在程序启动时就清理一些资源,比如 Event 、Thread的句柄,怎样做比较好。
对Event 可不可以在一开始先创建再灭掉。代码如下可不可以:
::strcpy(&tmpHandleName[0][0], FORSNDMOMSGEVENT);
::strcpy(&tmpHandleName[1][0], KILLCMPPTHREVENT);
::strcpy(&tmpHandleName[2][0], KILLMSGTHREVENT);
::strcpy(&tmpHandleName[3][0], KILLREADTHREVENT);
::strcpy(&tmpHandleName[4][0], KILLLISTENEVENT);

int iTryTime;
for (int itmpCount = 0; itmpCount < 5; itmpCount++ )
{
KillHandle[itmpCount] = CreateEvent(NULL, TRUE, FALSE, (LPCTSTR)tmpHandleName[itmpCount]);
while(::WaitForSingleObject(KillHandle[itmpCount], 0) == WAIT_TIMEOUT)
{

CloseHandle(KillHandle[itmpCount]);
iTryTime ++;
}
}
那些是我要在接下来要用到的Event;
有必要这样做吗?主要是怕以前的一些资源没有清理。
...全文
32 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
clientwyc 2003-09-27
  • 打赏
  • 举报
回复
up up up up up
clientwyc 2003-09-09
  • 打赏
  • 举报
回复
对于C++ 那些资源是必须释放的呢?
比如多线程中,我有一个类是继承Thread的类如果我在Execute()中让他自然退出,需要delete 该类的实例吗?如果Execute()自然退出后,但我没有delete 该类的实例
WaitForSingleObject(ThreadHand, 0) == WAIT_OBJECT_0 成立吗?
但我还是想全面地了解一下当一个进程,线程,一个实例退出后应该释放那些资源。
谢谢!!
kingcaiyao 2003-09-08
  • 打赏
  • 举报
回复
没有这个必要。
你只需在上次程序退出时,将所有事件的句柄关闭,释放资源。
clientwyc 2003-09-08
  • 打赏
  • 举报
回复
我是怕上一次运行程序关闭后,有内存泄漏,想在下一次启动时做一些清理工作。
象内存泄漏的问题怎样解决比较好呢?
wangxd 2003-09-06
  • 打赏
  • 举报
回复
有什么用吗

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧