多线程数据库查询... 一数据库的程序,在程序中有个查询(用TADOQuery),可能会花很长时间,如果按通常的单线程做法,用户会等到不耐烦以为死机了。我想改用多线程编程法,将查询的打开放在一子线程中,这样用户就不会感到死机了,而且用户还可以中断太长的查询。 请教各位大虾的具体做法,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用一个SESSION控件或是干脆创建一个线程 在线程里定义一个方法就行这个方法,再在线程里定一个指向数据集的引用就行。可以如下写 TADOThread = class(TThread) private { Private declarations } RS:TADODataSet; protected procedure Execute; override; procedure CallDo; constructor Create(ARS:TADODataSet);implementationprocedure TADOThread .CallDo;begin //RS的一些操作end;constructor TADOThread .Create(ARS:TADODataSet);begininherited Create(False);RS:=ARS;end;procedure TADOThread .Execute;begin inherited; Synchronize(CallDo);end; ???请问有没有漂亮一点的 PageControl 控件,或相关的控件组??? 100分求个好名字 请问,哪位有股票分析软件的源代码 请教一个关于lookup字段的问题 有哪位大侠对delphi和vb都懂的,麻烦将下面的一段delphi代码换成VB代码。 用WISE发布软件问题?再线等待!!! 寻找 power pdf中文字体解决方法或源代码 怎样改变组件的默认字体? 在Delphi6中如何修改win98或win2000中的Autoexec.bat文件 用sleep碰到的疑惑 几个小问题,送分! 如何检测一个程序在某一时间内是进程是活动的?
或是干脆创建一个线程
TADOThread = class(TThread)
private
{ Private declarations }
RS:TADODataSet;
protected
procedure Execute; override;
procedure CallDo;
constructor Create(ARS:TADODataSet);implementationprocedure TADOThread .CallDo;
begin
//RS的一些操作
end;constructor TADOThread .Create(ARS:TADODataSet);
begin
inherited Create(False);
RS:=ARS;
end;procedure TADOThread .Execute;
begin
inherited;
Synchronize(CallDo);
end;