多线程总是报地址异常错误啊(救命!)(30分)

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

6ysnow

Unregistered / Unconfirmed
GUEST, unregistred user!
我的多线程访问数据库,其中每一个线程有自己的query。公用一个ADOconnect,
并且将线程中的日志在主界面上显示,且还将线程中的计数也在界面上显示..
线程执行如下:
while(not Terminated) and (not G_Thread_Exit) do
begin
if WaitForSingleObject(hMutex, INFINITE) = WAIT_OBJECT_0 then
try
do
Work;
except
WriteLog('Error >>>Whendo
Work Event.......');//主界面日志
end;
ReleaseMutex(hMutex);
end;

DoWork:
p:=PQueueBlackList(self.FQueue.Pop);
try
FADOQue.Connection:=FADOConn;
AddBlackList(p);

Synchronize(RealTimeCount);//主界面计数
finally
FreeMem(p,sizeof(TQueueBlackList));
end;

现在是,系统不定期的会报地址错误!!真是没有办法!
各位给我看看,是不是我的信号量没有用对?
还是我的计数、日志引起的??有没有好的建议啊!!!
 
把adoconnection分开吧,不要公用一个
 
分开??只允许使用一个连接!会不会和我socket的发送有关系??
我发现我在发送数据包时出了地址错!
 
我是从主线程中socket中收到数据包后压相应线程的队列,然后操作数据库,同时需要在另一个线程中回调到主线程异步发送数据包,我发现在发送这个出了错,难道是socket引起的??请教啊!
 
发现,偶尔我将主界面最小化再打开后,弹出地址错误。如果一直不最小化,就只有一个错误框,程序继续跑,但是如果再次最小化后这个错误框又出来了,依次.....
好像一旦出了地址错后,只要show一下主界面就会弹出一个错误。谁知道怎么回事啊???
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
回复
0
查看
657
爱音乐的孩子是小白
后退
顶部