用TerminateTread终止线程时,线程函数中的链表正在循环,清除时程序卡死,怎么办?

for(it=list.begin();it!=list.end();it++)
{
//循环
}
终止线程时我调用了清除函数,需要将list清空,即list.clear();
但是程序在此处经常卡死,原因我分析是list正在循环,线程终止后,list无法清空
有没有哪位大神遇到这种情况,帮帮小弟呗?在此谢过了