![]() |
Kylix: idTCPServer.onExecute und TStringlist
Hallo,
ich habe unter Kylix ein Konsolenprogramm geschrieben, das einen idTCPServer benutzt. Im Ereignis onExecute wird eine Prozedur aufgerufen, die eine Stringlist benutzt. Da Stringlists ja nicht Threadsicher sind verwende ich eine CriticalSection. Trotzdem trennt der Server die Verbindung zum Client, wenn ich die Stringlist per var Parameter an eine andere Prozedur übergebe. Sprich: Es wird die Methode OnDisconnect aufgerufen, und der Client ist nicht mehr verbunden. Vielleicht noch was zur CriticalSection: Ich habe die Unit SyncObjs eingebunden und eine eine Variable CS vom Typ TCriticalSection deklariert. Was mach ich falsch? Der Programmaufbau sieht in etwas so aus:
Delphi-Quellcode:
Ich hoffe ihr könnt mir helfen
uses
SyncObjs; procedure sl1; SL: TStringlist; begin SL := TStringlist.Create; try sl2(SL); finally freeandnil(Slist); end; end; procedure sl2(var SList: TStringlist); begin Slist.Clear; Slist.Add('456'); end; procedure TServEvent.OnExecute(AThread: TIdPeerThread); var msg: string; begin msg := AThread.Connection.Readln if msg ='123' then begin CS.Enter; sl1(msg); CS.Leave; end; end; var Cs: TCriticalSection begin CS := TCriticalSection.Create; TCPServer.active := true; readln; readln; CS.free; end. Gruß Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz