Kapitel 8. Gleichzeitigkeitsmanagement

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Eingehende Client-Aufrufe werden über Threads aus dem Windows I/O Completion Thread Pool an den Dienst weitergeleitet (der Pool hat standardmäßig 1.000 Threads). Mehrere Clients können mehrere gleichzeitige Aufrufe tätigen, und der Dienst selbst kann diese Aufrufe auf mehreren Threads aufrechterhalten. Wenn die Aufrufe an dieselbe Dienstinstanz gerichtet sind, musst du einen thread-sicheren Zugriff auf den Speicherstatus des Dienstes ermöglichen, um Zustandsbeschädigungen und Fehler zu vermeiden. Das Gleiche gilt für den In-Memory-Status des Clients während der Rückrufe, da auch die Rückrufe über Threads aus dem I/O Completion Thread Pool abgewickelt werden. Neben der Synchronisierung des Zugriffs auf den Zustand der Instanz müssen alle Dienste auch den Zugriff auf Ressourcen synchronisieren, die von den Instanzen gemeinsam genutzt werden, wie z. B. statische Variablen. Eine weitere Dimension des Gleichzeitigkeitsmanagements ist die Sicherstellung, dass der Dienst (oder die Ressourcen, auf die er zugreift) bei Bedarf auf bestimmten Threads ausgeführt wird.

WCF bietet zwei Modi für die Synchronisierung. Die automatische Synchronisierung weist WCF an, den Zugriff auf die Dienstinstanz zu synchronisieren. Die automatische Synchronisierung ist einfach zu verwenden, aber sie ist nur für Dienst- und Callback-Klassen ...

Get Programmierung von WCF-Diensten, 4. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.