Der Einsatz von
goto wird ja immer so verteufelt. Ich habe das bisher eigentlich schon immer etwas differenziert gesehen, hatte bisher nur nie die Situation, in der ein
goto sinnvoll gewesen wäre. Aber ich denke, gerade eben bin ich über einen sinnvollen Einsatz gestolpert:
Delphi-Quellcode:
function DemoThread(p: Pointer): Integer;
var
i: Integer;
ParentHandle: THandle;
label CLEANUP;
begin
ParentHandle := PThreadParams(p)^.ParentHandle;
for i := 0 to 9 do
begin
if Abort then
begin
SendMessage(ParentHandle, CM_ABORT, 0 , 0);
goto CLEANUP;
end;
SendMessage(ParentHandle, CM_STATUS, Integer(PChar('Durchlauf:')), i);
Sleep(500);
end;
SendMessage(ParentHandle, CM_FINISHED, 0, 0);
CLEANUP:
Dispose(p);
Result := 0;
end;
Ich stelle das hier einfach mal zur Diskussion.