// 删除任务列表中指定描述的任务
BOOL CTaskManageList::RemoveTaskFromList( CString strPrintDesc )
{
POSITION posIndex = m_lsTaskManage.GetHeadPosition();
while(posIndex)
{
CTaskManage *pTaskManage = m_lsTaskManage.GetAt(posIndex);
CString strDesc = pTaskManage->GetPrintDesc();
if (!strPrintDesc.Compare(strDesc))
{
CloseHandle(pTaskManage->m_hShutDown);
delete pTaskManage;
pTaskManage = NULL;
// 从列表中删除
m_lsTaskManage.RemoveAt(posIndex);
break;
}
m_lsTaskManage.GetNext(posIndex); //后移
}
return TRUE;
}
对这种迭代方式是在很不习惯, 记录一下。