摘要: 在写代码时几次遇到因回调导致线程结束时的死锁,这里记一笔! 死锁是在等待线程结束时发生,若在线程函数体内调用回调,而回调中执行了等待线程结束的操作,WaitForSingleObject(hThreadHandle, 5000)或强迫结束线程的操作,TerminateThread(hThreadHandle, -1),死锁便产生了。因为WaitForSingleObject()或TerminateThread()实际上还处在线程函数的执行序列内,使得线程自己等自己退出,或线程自己结束自己,而导致死锁。 这种死锁很容易不经意发生,举一个例子,你开了一个线程执行数据下载操作,当读取完毕时,常通过. 阅读全文
posted @ 2011-03-10 23:15 lanyuliuyun 阅读(1086) 评论(0) 推荐(0)