Zitat von
fiasko:
Ich stelle mir das so vor:
Delphi-Quellcode:
procedure TMyThread.Execute();
var
Msg: String;
c: boolean;
begin
while not Terminated do
begin
EnterCriticalSection(..);
if not Connection[SockId].Connected then break;
Msg := Connection[SockId].ReadLn;
WriteLn(Msg);
LeaveCriticalSection(..);
end;
end;
Wenn du mit
break aus der Schleife springst, wird nie
LeaveCriticalSection aufgerufen und du hast ein DeadLock.