ProQix
Użytkownik
- Dołączył
- Czerwiec 11, 2008
- Posty
- 86
Witam.
Napisałem sobie wątek i wszystko działa poprawnie dopóki nie użyje w nim linijki
tzn, bez tej linijki program działa na wielowątkowości, gdy ją dodam to program zachowuje się jakby wszystkie wątki były jednym inaczej mówiąc moc obliczeniowa rozkłada się na wszystkie wątki i ich wypadkowa
wynosi tyle samo co gdybym uruchomił jeden wątek.
Nie mogę dojść w czym leży problem, nie pojmuje tego.
Napisałem sobie wątek i wszystko działa poprawnie dopóki nie użyje w nim linijki
Kod:
Str:=FCharSet[1+Value-FCharSetLength*Nxt]+Str;
Kod:
procedure TCrackMD5Thread.Execute;
var Str:String; Value:Integer; Nxt:Integer;
begin
FEnable:=True;
while FEnable = True do begin
Lopper;
while FEnder > FBeginer do begin
Value:=FBeginer;
Nxt:=0;
Str:='';
while Value<>0 do begin
Dec(Value);
Nxt:=Value div FCharSetLength;
Str:=FCharSet[1+Value-FCharSetLength*Nxt]+Str;
Value:=Nxt;
end;
if False then begin
//if MD5DigestCompare(MD5String(IntToExcelBase(FBeginer)),FHash) then begin
FindIt(FBeginer);
Break;
end;
INC(FBeginer);
end;
end;
end;
tzn, bez tej linijki program działa na wielowątkowości, gdy ją dodam to program zachowuje się jakby wszystkie wątki były jednym inaczej mówiąc moc obliczeniowa rozkłada się na wszystkie wątki i ich wypadkowa
wynosi tyle samo co gdybym uruchomił jeden wątek.
Nie mogę dojść w czym leży problem, nie pojmuje tego.
Ostatnia edycja: