![]() |
Problem mit Threads
Bei folgender Procedure in einen Thread bekomme ich eine AV, wenn ich den Thread mit Resume starte.
Führe ich ihn per Execute aus funktioniert alles.
Delphi-Quellcode:
type
TCalulateCheckSum = class(TThread) private { Private-Deklarationen } protected sha1 : TlbSHA1; SHA1Digest : TSHA1Digest; procedure UpdateListItem1; procedure UpdateListItem2; procedure Execute; override; public ListItem : TListItem; Checksum : string; Filename : string; end; implementation uses unit2; procedure TCalulateCheckSum.Execute; begin { Thread-Code hier einfügen } Synchronize(UpdateListItem1); sha1 := TLBSha1.Create(nil); sha1.HashFile(Filename); sha1.GetDigest(SHA1Digest); checksum := BufferToHex(SHA1Digest, SizeOf(SHA1Digest)); sha1.Free; Synchronize(UpdateListItem2); end; Aufruf :
Delphi-Quellcode:
Jemand ne Idee woran das liegen könnte ?
procedure TForm2.ListViewCheck;
var t : integer; CheckSum : TCalulateCheckSum; begin if Checksumrunning then exit; for t := 0 to pred(ListView2.Items.Count) do begin if ListView2.Items[t].SubItems[1] = 'to be hashed...' then begin Checksumrunning := true; Checksum := TCalulateCheckSum.Create(true); Checksum.ListItem := ListView2.Items[t]; Checksum.Filename := ListView2.Items[t].Caption; CheckSum.FreeOnTerminate := true; Checksum.resume; // <<-- wenn ich hier execute schreibe funzt alles. exit; end; end; end; |
Re: Problem mit Threads
Zeig mal die Synchronize Methode.
|
Re: Problem mit Threads
Delphi-Quellcode:
procedure TCalulateCheckSum.UpdateListItem1;
begin ListItem.SubItems[1] := 'Hashing...'; ListItem.Update; end; procedure TCalulateCheckSum.UpdateListItem2; begin ListItem.SubItems[1] := checksum; Form2.Checksumrunning := false; Form2.Timer1.Enabled := true; end; |
Re: Problem mit Threads
OK, Fehler gefunden...
Es lag an der SHA1 Komponente, die war irgendwie fehlerhaft. Ich habe es mit einer anderen SHA1-Unit versucht, und dann gings. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz