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;
现在是,系统不定期的会报地址错误!!真是没有办法!
各位给我看看,是不是我的信号量没有用对?
还是我的计数、日志引起的??有没有好的建议啊!!!
并且将线程中的日志在主界面上显示,且还将线程中的计数也在界面上显示..
线程执行如下:
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;
现在是,系统不定期的会报地址错误!!真是没有办法!
各位给我看看,是不是我的信号量没有用对?
还是我的计数、日志引起的??有没有好的建议啊!!!