Freigeben über


Anforderungswarteschlangen für Anforderungswarteschlangen in Version 2.0 starten

Die Anforderungsstartfunktion der API-Anforderungswarteschlangen der HTTP Server Version 2.0 ermöglicht der Controlleranwendung, die Instanziierung des Arbeitsprozesses zu verzögern, bis die erste Anforderung in der Anforderungswarteschlange eingeht. Daher können die Anwendungen den Verbrauch von Ressourcen vermeiden, bis sie erforderlich sind. Weitere Informationen zur Controlleranwendung finden Sie im Thema Benannte Anforderungswarteschlange.

Asynchroner Bedarfsstart

Die Controlleranwendung ruft HttpWaitForDemandStart mit dem Handle für die Anforderungswarteschlange auf, um eine Anforderungsstartbenachrichtigung zu initiieren. Zur asynchronen Vervollständigung stellt die Anwendung die überlappende Struktur im pOverlapped Parameter. Wenn HttpWaitForDemandStart asynchron aufgerufen wird, wird die Controlleranwendung benachrichtigt, wenn die erste Anforderung in der Anforderungswarteschlange eingeht. Nach Abschluss der Anforderungsstartbenachrichtigung kann die Controlleranwendung für eine weitere Anforderungsstartbenachrichtigung in der Anforderungswarteschlange registrieren.

Die HTTP-Server-API lässt nicht mehr als eine gleichzeitige Anforderungsstartbenachrichtigung für eine Anforderungswarteschlange zu. Wenn die ausstehende Anforderungsstartbenachrichtigung abgeschlossen ist, ruft die Anwendung jedoch HttpWaitForDemandStart erneut auf, um mehrere Arbeitsprozesse in der Anforderungswarteschlange zu starten. HTTP erzwingt keine Einschränkungen für die Anzahl der Anforderungsstartbenachrichtigungen oder die Anzahl der Arbeitsprozesse, die in der Anforderungswarteschlange ausgeführt werden. Die Controlleranwendungen können jedoch die Anzahl der in einer Anforderungswarteschlange zulässigen Arbeitsprozesse erzwingen.

Die HTTP-Server-API unterstützt das Abbrechen asynchroner HttpWaitForDemandStart--Aufrufe. Anwendungen können CancelIoEx- mit der überlappenden Struktur verwenden, die in pOverlapped-bereitgestellt wird, um einen ausstehenden HttpWaitForDemandStart Aufruf abzubrechen.

Synchroner Bedarfsstart

Der synchrone Anforderungsstart wird nicht empfohlen, da die Anwendung blockiert wird, bis eine Anforderung in der Anforderungswarteschlange eintrifft.