Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#9

AW: Threads (tpIdle) blokieren Anwendung

  Alt 15. Jun 2012, 09:05
Das System läuft prinzipiell auch sehr gut.
Wenn es sekundenlang hängt, ist nicht sehr gut


Ich vermute mal, dass dein Hauptproblem ist, dass die Synchronisationsnachrichten gegenüber den "interaktiven" Nachrichten bevorzugt werden* und schlage folgendes vor:
  • Jeder Thread kann sich in eine eine threadsichere Queue eintragen, wenn der Thread etwas synchronisiertes machen möchte.
  • Der Thread schickt bei Wunsch, etwas synchronisiertes zu machen, eine niedrig-priore Nachricht an den Hauptthread.
  • Der Hauptthread kann, wenn er diese Nachricht erhält, die Queue abarbeiten und (mit CriticalSections gesicherte) Aktualisierungsprozeduren des Threads aufrufen.
Damit erreichst du, das du das Abarbeiten der "synchronisierten" Proceduren selbst kontrollierst und das nur passiert, wenn gerade Zeit ist.
Ob du das machen willst und dir damit das ganze Synchronisationszeug auf die Seele ziehst, ist natürliche deine Entscheidung

* Kann das jemand bestätigen oder verneinen? Man könnte das ja erstmal in einem Prototyp testen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (15. Jun 2012 um 09:21 Uhr)
  Mit Zitat antworten Zitat