Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: Dinge in meinen Thread queuen

  Alt 12. Dez 2014, 18:21
Für so Dinge verwende ich meistens Events (MSDN-Library durchsuchenCreateEvent, MSDN-Library durchsuchenWaitForSingleObject). Die gibt es in den neueren Delphi Versionen glaube ich auch in einer Klasse gekapselt.

Thread 2 erstellt ein Event und wartet direkt im Execute auf signal. Thread 1 sinalisiert das Event, nachdem die Daten da sind. Thread 2 blockiert nun nicht mehr und bearbeitet die Daten. Wenn Thread 1 während der Bearbeitung weitere Daten hat, werden die ebenfalls an Thread 2 übergeben (hierfür sollte Thread 2 z.b. einen Stream bereitstellen. CriticalSections bei gemeinsamen Zugriff nicht vergessen!). Thread 2 arbeitet dann so lange, bis keine Daten mehr da sind, setzt dann das Event wieder zurück und fängt die Schleife von vorne an.

BTW: Wenn es dir konkret um eine Server Anwendung geht, dann such mal nach IO Completion Ports.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (12. Dez 2014 um 18:25 Uhr)
  Mit Zitat antworten Zitat