在头文件中有如下定义 CPtrArray thdptr;typedef struct ithread
{
int thdnum;
HANDLE ihandle;
DWORD iuid;
} ithread在cpp文件中,我把创建的每一个线程的handle和id,再加一个预定号放进这个结构再 Add 进 thdptr 以便后期监视管理CWinThread *pThread=AfxBeginThread(RUNTIME_CLASS(CUIThread)); uithdid=pThread->m_nThreadID;
uithd = pThread->m_hThread;
ithd++; ithread *pthd = new ithread();
pthd->thdnum = ithd;
pthd->ihandle = uithd;
pthd->iuid = uithdid; thdptr.Add(pthd);在退出某个线程时,该怎么释放掉之前申请的空间?
{
int thdnum;
HANDLE ihandle;
DWORD iuid;
} ithread在cpp文件中,我把创建的每一个线程的handle和id,再加一个预定号放进这个结构再 Add 进 thdptr 以便后期监视管理CWinThread *pThread=AfxBeginThread(RUNTIME_CLASS(CUIThread)); uithdid=pThread->m_nThreadID;
uithd = pThread->m_hThread;
ithd++; ithread *pthd = new ithread();
pthd->thdnum = ithd;
pthd->ihandle = uithd;
pthd->iuid = uithdid; thdptr.Add(pthd);在退出某个线程时,该怎么释放掉之前申请的空间?
解决方案 »
- 请教_inp使用问题~提供底层最好~
- 如何从recv接收的数据中分解出我的数据?
- 求助!关于Viusal C++的简单问题!
- 求教:bmp相关问题
- 请大家介绍几本有关网络编程的比较好的书
- 请问:有没有讲提高耦合度与内聚的书同时讲了一下其间常用的通讯方式的
- 请教各位大哥:如何在MFC下使用世界坐标
- 既会dephi又熟练VC的大侠,进来。俺老猪撒分了
- SHGetFolderPath在英文系统中文用户下得CSIDL_LOCAL_APPDATA,总是乱码,有其他替代函数吗??
- 一定给分!socket编程!
- WebBrowser画图和接受事件,再加300分一共500分,达人不要删啊
- 新的工作,新的起点,发个小贴,庆祝一下!!散分那是必须的!!吼吼~~~~~
那个CPtrArray 是在主线程内用于监视进程内的其他线程,用于当发现意外时在CPtrArray中找到那个线程的handle和id然后强制做掉它,但当记录在案的线程正常释放后,CPtrArray内记录的之前申请的空间还在,要怎么过去把之前申请的那个记录空间释放掉?
for(int c=0; c<thdptr.GetSize();c++)
{
ithread *ith = thdptr[c];
if(ith->thdnum==5)
{
thdptr.del(ith);
ith = NULL;
break;
}
}
编译出错了 T-T
pthd->thdnum = ithd;
pthd->ihandle = uithd;
pthd->iuid = uithdid; thdptr.Add(pthd);
这里有一个new和一个add释放的时候找到那个ithread,先delete new的内存,然后remove链表中的节点