unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
type
Filecopy = class(TThread)
protected
procedure Execute; override;
end;
var
F: integer;
CS: TRTLCriticalSection;
{$R *.dfm}
procedure Filecopy.Execute;
begin
EnterCriticalSection(CS);
FreeOnTerminate := True;
if F=1 then
copyfile('F:\1.exe','E:\1.exe',false)
else if F=2 then
copyfile('F:\2.exe','E:\2.exe',false)
else if F=3 then
copyfile('F:\3.exe','E:\3.exe',false)
else showmessage('ok了');
LeaveCriticalSection(CS);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
F:=0;
for i:=0 to 3 do
begin
F:=F+1;
Filecopy.Create(false);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteCriticalSection(CS);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
InitializeCriticalSection(CS);
end;
end.
这是小弟学习多线程是写的一段代码
高手看看 为什么不能加f盘里的3个文件全都复制到E盘里