Hallo Herr Kosch,<br>
ich arbeite z.Z. Ihr Buch COM/DCOM mit Delphi durch.<br>
Dabei ist mir etwas (für mich) merkwürdiges aufgefallen.<br>
Auf den Seiten 165 und 166 beschreiben Sie den COM-Contest2 mit Threads.<br>
Dem Thread-constructor übergeben Sie das Object TStaticText mit SText. Dieses Object<br>
ist ein VCL-Object des Hauptprozesses.<br>
<p>
So jetzt die Frage:<br>
Geht das in Ordnung, wenn Sie auf dieses Object ohne Synchronize in der Execute<br>
des Threads zugreiffen ?</p>
<p>
procedure TCOMThread.Execute;<br>
var<br>
iCnt,<br>
iStart,<br>
iStop : Integer;<br>
cBrutto : Currency;<br>
begin<br>
iStart := GetTickCount;<br>
for iCnt := 1 to FCount do begin<br>
if FDual then begin<br>
FEarly.SetPercent(16);< br>
cBrutto := FEarly.GetBrutto(100.75);<br>
end else begin<br>
FLate.SetPercent(16);<b r>
cBrutto := FLate.GetBrutto(100.75);<br>
end;<br>
end;<br>
iStop := GetTickCount;<br>
FValue := iStop - iStart;<br>
if FDual<br>
then FText.Caption := 'Early: ' + IntToStr(FValue)<br>
else FText.Caption := 'Late: ' + IntToStr(FValue);<br>
end;<br>
</p>
ich arbeite z.Z. Ihr Buch COM/DCOM mit Delphi durch.<br>
Dabei ist mir etwas (für mich) merkwürdiges aufgefallen.<br>
Auf den Seiten 165 und 166 beschreiben Sie den COM-Contest2 mit Threads.<br>
Dem Thread-constructor übergeben Sie das Object TStaticText mit SText. Dieses Object<br>
ist ein VCL-Object des Hauptprozesses.<br>
<p>
So jetzt die Frage:<br>
Geht das in Ordnung, wenn Sie auf dieses Object ohne Synchronize in der Execute<br>
des Threads zugreiffen ?</p>
<p>
procedure TCOMThread.Execute;<br>
var<br>
iCnt,<br>
iStart,<br>
iStop : Integer;<br>
cBrutto : Currency;<br>
begin<br>
iStart := GetTickCount;<br>
for iCnt := 1 to FCount do begin<br>
if FDual then begin<br>
FEarly.SetPercent(16);< br>
cBrutto := FEarly.GetBrutto(100.75);<br>
end else begin<br>
FLate.SetPercent(16);<b r>
cBrutto := FLate.GetBrutto(100.75);<br>
end;<br>
end;<br>
iStop := GetTickCount;<br>
FValue := iStop - iStart;<br>
if FDual<br>
then FText.Caption := 'Early: ' + IntToStr(FValue)<br>
else FText.Caption := 'Late: ' + IntToStr(FValue);<br>
end;<br>
</p>
Comment