多线程退出异常(请指教)(10分)

  • 主题发起人 主题发起人 6ysnow
  • 开始时间 开始时间
6

6ysnow

Unregistered / Unconfirmed
GUEST, unregistred user!
我在多线程创建自己的ADOquery,同时访问数据库,退出时,由于线程还是访问数据库,结果总是在退出时,出现错误,很显然,在执行数数据库过程中突然退出线程销毁线程中的资源导致了错误。但是,怎么才能避免那??希望有经验的同志点拨啊!!
destory:
Sleep(1000);
FADOQue.Close;
FADOQue.Free;
ADOESMEStore.Close;
ADOESMEStore.Free;
ESMEConn.Free;
DestroyDll(FH);
CoUnInitialize;
 
先考虑WaitFor,再研究是在哪里创建了ADO。
 
不要使用sleep啊,你使用了sleep肯定死在那儿了。然后出现资源没有释放完的错误。建议在线程里面加入waitforsingalobject这种来做。
 
如果query对象还在访问数据库,不能直接退出的,先waitfor,等它处理完再释放线程
 
晕死,线程中的队列堆了几十万的数据,等待操作完,什么时候?
 
在主线程退出时向线程发一个消息
线程收到这个消息后,马上结束所有任务并退出。
线程中的ADOQuery使用前检查是否收到消息,收到则结束线程。
 
发送消息?我使用一个标志位:当退出时,置为false,关键是在线程结束一次执行时有很多的数据,就是说可能要花很多的时间才会结束一次执行,所以我置了标志位没有什么意义的!你的消息不晓得是怎么回事,,能不能示范一下。。
 
多人接受答案了。
 
后退
顶部