当前位置:主页>销售管理软件> 列表

多线程总是报地址异常错误啊(救命!) 找用友财务软件下载

销售管理软件版1楼: 我的多线程访问数据库,其中每一个线程有自己的query。公用一个ADOconnect,
并且将线程中的日志在主界面上显示,且还将线程中的计数也在界面上显示..
线程执行如下:
while(not Terminated) and (not G_Thread_Exit) do
begin
if WaitForSingleObject(hMutex, INFINITE) = WAIT_OBJECT_0 then
try
DoWork;
except
WriteLog(''Error >>>When DoWork 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;

现在是,系统不定期的会报地址错误!!真是没有办法!
各位给我看看,是不是我的信号量没有用对?
还是我的计数、日志引起的??有没有好的建议啊!!!

2楼: 把adoconnection分开吧,不要公用一个 如用友财务软件下载

3楼: 分开??只允许使用一个连接!会不会和我socket的发送有关系??


我发现我在发送数据包时出了地址错!

4楼: 我是从主线程中socket中收到数据包后压相应线程的队列,然后操作数据库,同时需要在另一个线程中回调到主线程异步发送数据包,我发现在发送这个出了错,难道是socket引起的??请教啊!

5楼: 发现,偶尔我将主界面最小化再打开后,弹出地址错误。如果一直不最小化,就只有一个错误框,程序继续跑,但是如果再次最小化后这个错误框又出来了,依次.....
好像一旦出了地址错后,只要show一下主界面就会弹出一个错误。谁知道怎么回事啊???

6楼: 接受答案了.