高手指点(100分)

  • 主题发起人 主题发起人 YYXX
  • 开始时间 开始时间
Y

YYXX

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做分布式数据库时,连接应用服务器时比较费时,好象死机一样,我想能够在连接的时候
可以取消,我做了个线程,这个问题是解决了。然而在线程里面建立的连接
以后就不能够用了。真的奇怪呀!哪位高手指点一下。
 
连接服务器是会有比较迟缓的现象,个人认为没有必要建立线程。
有的时候防火墙可以阻挡与服务器的连接。
 
YYXX,我也遇到了你这样的问题,不过我的需求是:连接服务器时,万一服务器坏掉的话,希望
能在规定的时间(3,4秒)后取消连接。我想实现机理应该和你的一样。希望你能将你实现的
方法说一下,最好能贴一下原代码,不胜感激!
 
to YYXX: 应该不存在用不了的问题. 以下是我做试验的线程代码,可以使用,无问题.
type
TConnThread=class(TThread)
private
FConnection:TADOConnection;
protected
procedure Execute;override;
public
constructor Create(AConn:TADOConnection);
destructor Destroy;override;
end;

implementation
constructor TConnThread.Create(AConn: TADOConnection);
begin
inherited Create(True);
FConnection:=AConn;
FreeOnTerminate:=True;
Resume;
end;

destructor TConnThread.Destroy;
begin
inherited;
end;

procedure TConnThread.Execute;
begin
CoInitialize(nil);
try
FConnection.Open;
finally
CoUninitialize;
end;
end;
 
呵呵,看错了,原来是三层的.
不过一样可以的,将其中的TADOConnection 改为TSocketConnection.
 
smokingroom,你将TADOConnection作为参数传给线程,如果存在多个线程的话,共用一个
TADOConnection,不会互相影响吗?
 
后退
顶部