Zitat von
BloodySmartie:
Hier hab ich ganz offensichtlich mal wieder Nachholbedarf
Hmm, ohne "j" kompiliert das tatsächlich. Aber jetzt steh' ich erst recht aufm Schlauch. Kannst Du mir ein dreizeiliges Beispiel klappern, damit ich kapiere, wie ich Daten in die Schleife geben und Ergebnisse rausbekommen kann? (Oder kannst Du mir das wenigstens erklären?)
Eine Möglichkeit wäre es, den Wert in eine Referenz zu verpacken. Damit hat man was, das gesperrt werden kann:
Delphi-Quellcode:
var j := new class(Value := 0);
for parallel i : Integer := 0 to 10000 do
begin
locking j do
j.Value := j.Value + 1;
end;
Ich habe hier eine
anonyme Klasse verwendet, das reduziert ein unnötiges Deklarieren einer Klasse nur dafür...
Natürlich ist der Code komplett irrsinnig. Schließlich sorgt das "
locking" dafür, dass imer nur ein Thread auf einmal die Zahl inkrementiert...