线程查询的问题(100分)

  • 主题发起人 主题发起人 hewguo
  • 开始时间 开始时间
H

hewguo

Unregistered / Unconfirmed
GUEST, unregistred user!
我用线程进行数据库的查询,现在有两个问题:1。当线程查询结束后,如何关闭
线程用到的session,因为我的线程中用固定的线程名,当一个线程结束后,再建
一个线成后就提示session name已使用。2。如何在查询出现异常后,结束线程?
 
其实你应该每创建一个线程就建立一个session。如:如果你把数据库组件都放在datamodule1
里的话,把datamodule1当做一个类来申明,datamodules:array[0..10] of tdatamodule1;
当创建一个线程时就创建一个datamodules:=tdatamodule1.create(self);这样就不会
导致多个线程同时访问一个数据库组件而冲突。最后当要终止线程的时候就:
myThreads.Terminate;
myThreads.waitfor;
myThreads.free;
datamodules.free;
如果这样的话就肯定可以了,而且能保证完全释放线程的资源。
至于在异常的时候就可以在
try
.....
excepte
myThreads.Terminate;
myThreads.waitfor;
myThreads.free;
datamodules.free;
end;
就可以。试一试。
 
我发现同样有这个问题.不知如何解决.
在线程中建一Session,释放后,好像SessionName还在那里.痛苦.
 
后退
顶部