有时会出现死锁, 郁闷好些天,解决立即给分解决方法

有时会出现死锁, 郁闷好些天,解决立即给分
有时会出现死锁....

_RecordsetPtr   pRecordset=NULL;
pRecordset.CreateInstance(__uuidof(Recordset));

try
{
pRecordset-> Open( "select   *   from   MessageAct   where   SuccFlag   =   -2   and   datediff(SS,RecordTime,getdate()) <=120   order   by   RecordTime ",pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

while   (!pRecordset-> adoEOF)
{
... pRecordset-> PutCollect( "ErrText ",varErrText);
pRecordset-> Update();

pRecordset-> MoveNext();
}

pRecordset-> Close();
pRecordset   =   NULL   ;

}
catch(_com_error   e)
{

MessageBox( "aa ",e.ErrorMessage()   );

pRecordset-> Close();
pRecordset   =   NULL   ;
}

------解决方案--------------------

------解决方案--------------------
死锁应该不在这里

你的 互斥的代码呢?
------解决方案--------------------
如果只有这些代码应该不至于产生死锁吧
------解决方案--------------------
楼主解决了么?
我也遇到了,有时产生死锁
不过我是在

m_pConnection.CreateInstance的地方

恳求大家了
------解决方案--------------------
有没有log可看?多线程的程序最好的调试手段就是看log...
------解决方案--------------------
这估计是导致数据库表锁住了吧
------解决方案--------------------
对数据库操作的时候加互斥信号...