怎样让一个过程后台执行?(20分)

  • 主题发起人 主题发起人 del530
  • 开始时间 开始时间
D

del530

Unregistered / Unconfirmed
GUEST, unregistred user!
一个文件备份的过程,我非得等它搞完之后才能搞其他的事,怎样让它在后台执行,然后我
怎样可能中止这个过程?
 
呵呵,你加上这一句试试:application.ProcessMessages;这样程序可以接收其它事件。
 
试了不行啊。是个数备份的过程,时间较长,这段时间想中止都不行。
 
用一个线程去运行他啊。
 
[:(!]to blackFiles ;

对线程还不懂,能给点提示吗?
 
创建threads:
然后将execute:
修改成你的执行函数:,注意threads安全!
如果想结束,将threads

; dcs = class(TThread)
; private
; ; gaugx:tgauge;
; ; { Private declarations }
; protected
; ; procedure Execute; override;
; public
; constructor create(gaug:tgauge);
; end;

constructor dcs.create(gaug:tgauge);
begin
gaugx:=gaug;
inherited create(false);
end;
procedure dcs.Execute;
var
i,j:integer;
begin
for i:=100000000 downto 0 do
; ; begin
; ; gaugx.Progress:=i;
; ; end;
gaugx.Progress:=10000000;
gaugx.hide;
end;
//执行threads下面一行
mythread2:=dcs.Create(gauge2);
 
to dcsdcs
感谢你的提示。。
只可惜我太菜了,居然看懂也不知道怎样用。
我的程序中没有execute
只有个需要参的过程 ;
bakdir(sou,sec:string);
然后我调用
bakdir('c:/myprog','d:/back/prog');
这个过程要较长的间,在执行中不知如何中断。
 
接受答案了.
 
后退
顶部