Hallo, ich versuche gerade mehrere Dateien zu bearbeiten. Um das ganze zu beschleunigen, versuche ich es mit Threads zu machen. Es bringt aber nur ca 1sek. Bei der Auslastung wurde auch nur ein CPU beansprucht (die andere nur ein wenig)
Delphi-Quellcode:
type
TThreadParams =
packed record
// Number: Integer;
Dat:
string;
end;
PThreadParams = ^TThreadParams;
function Umwandler(pDateiname: Pointer): Integer;
begin
... Umwandlung
end;
procedure TForm1.Button7Click(Sender: TObject);
var
DateienLst: TSearchRec;
id: Cardinal;
ExitCode : Cardinal;
tp : TThreadParams;
threadhandle: THandle;
begin
if FindFirst(Directory + '
*.txt', faAnyFile
and not faDirectory, DateienLst) = 0
then
try
repeat
tp.Dat:= Directory+DateienLst.
Name;
threadhandle:= system.BeginThread(
nil,0,@Umwandler,@
tp,0,id);
WaitForSingleObject(threadhandle, INFINITE);
GetExitCodeThread(threadhandle, ExitCode);
case ExitCode
of
IDYES: Writeln('
Benutzer hat "Ja" angeklickt.');
IDNO: Writeln('
Benutzer hat "Nein" angeklickt.');
end;
CloseHandle(threadhandle);
until FindNext(DateienLst) <> 0;
finally
SysUtils.FindClose(DateienLst);
end;
end;