Servus,
bin gerade dabei meine Client / Server Anwendung zu optimieren.
Zur Zeit läuft es so
Delphi-Quellcode:
Anwendung Anwendung
| |
JobThread JobThread
| |
Server ---------- Client
möchte aber den JobThread weglassen. Also wenn ein Job vom Server kommt, wird dieser direkt
an die Anwendung weiter gegeben und der Server kann sofort wieder mit seine arbeit weiter machen.
Sonst war es so, Server hat neuen Job. Übergaben an Jobthread (Templiste). Jobthread übergabe von Templist an joblist. Von Jobthread übergabe an die Anwendung wenn die Anwendung fertig war, hat der Jobthread einen neuen job übergeben, in der Zeit wurde der Jobthread mit Jobs vom Server gefüttert.
Der Jobthread ist ein wenig umständlich programmiert, deswegen weg damit.
Möchte das gerne so machen:
Der Server bekommt einen Job übergibt den per Synchronize an die Anwendung, jetzt auch ein Thread.
Die Anwendung speichert den Auftrag in einer Templiste. Die Anwendung arbeitet in der Execute die Jobs
ab und ruft dazu die Methode auf wo die Jobs verabeitet werden bzw. ausgewertet.
Jetzt meine eigentliche frage.
Wenn die Anwendung gerade die Jobliste abarbeitet kann der Server ja nicht einen neuen hinzufügen.
Also muss ich doch mit zwei listen arbeiten, oder ist das kein Problem wenn die Methode von der Anwendung per Synchronize aufgerufen wird.
Problem übergaben der Daten ohne das irgend ein Thread hängen bleibt. Der Server thread soll die Daten übergeben und nicht weiter blockiert werden.
Weis leider nicht wie ich das besser beschreiben soll, hoffe man versteht was ich da will.
Gruß