WinHTTP: Synchrone Requests parallel in meheren Objekten und Threads
-
Hi zusammen,
ich versuche mich gerade an WinHTTP. Soweit funktioniert meine Implementierung auch wie sie soll. Ich habe nun aber das Problem, dass wenn ich zwei Objekte meiner WinHTTP Klasse erzeuge und diese in verschiedenen Threads laufen lasse, die Verbindung in Objekt 2/Thread2 auf das abschließen des Requests in Objekt 1/Thread 1 wartet. Das heißt wenn ich einen Download in Objekt 1/Thread 1 durchführe, blockt die zweite Instanz bis der Download abgeschlossen ist. Da ich maximal diese zwei Verbindungen parallel benötige, wollte ich mir die Implementierung eines asynchronen WinHTTP Handlers sparen und einfach zwei Objekte meiner Klasse in zwei paralleln Threads nutzen.
Warum funktioniert die Parallelisierung hier nicht? Müssten zwei unabhängige Verbindungshandles nicht problemlos parallel laufen können?
thx
-
WinHTTP forciert soweit ich weiss das Limit von max. 2 Connections zum selben Server (bzw. auch mehr, aber nur wenn der Server angibt dass mehr OK ist).
Daran könnte es liegen. Ist aber eher unwahrscheinlich wenn du wirklich nur zwei Downloads parallel laufen hast (weil 2 Connections gleichzeitig ja noch erlaubt sind).Davon abgesehen...
starbasic schrieb:
Müssten zwei unabhängige Verbindungshandles nicht problemlos parallel laufen können?
Ja, müssten.
D.h. es...Warum funktioniert die Parallelisierung hier nicht?
...wird an deinem Code liegen.
Schuss ins Blaue: du hast nicht alles in die Klasse reingezogen, und irgendwo gibt's noch globale, static oder class-static Variablen die sich die beiden Threads teilen.