| |
|
|
| aHttpDw: Asynchrones* Senden et magasin per HTTP
*(im Ggs. zum synchonen magasin sans, dass cela XProfan-Programme wartet, jusqu'à qui opération finissez ist)
Beim Weiterentwickeln vom Gonzo-Chat [...] était mir vite bien sûr, dass trotz Optimierung des prozesssynchonen HTTP-Datenbeziehens (z.B. sur simple [...] ), mich störende Auszeiten qui L'assurance-chômage pas verhindert volonté peut.
un (im Bezug zum XProfan-Fil quel qui surface et Interaktionen darstellt) asynchrones Beziehen qui données musste her. qui XProfaner hat ici im Prinzip folgende Opportunités, là XProfan de maison aus pas permet, sur weitere Threads dedans des selben Prozesses weitere XProfanablaufstränge abzuarbeiten:
A) Zweiprozess-variante: un Prozess stellt qui L'assurance-chômage bereit et un zweiter Prozess qui synchone Datenkommunikation. Beide Prozesse kommunizieren asynchron miteinander (z.B. sur cet Pipes: [...] )
B) Einprozess-Mehrthread-variante: qui XProfanprozess fonctionne comment gehabt et läd une DLL (peux aussi per Inline-ASM erzeugt volonté) et qui DLL erzeugt selbständig verwaltend Nebenthreads. DLL muss une Schnittstelle pour den XProfan-Prozess bieten, données asynchron trop beziehen et trop senden.
variante A hat à variante B den le tort, dass cet grenier- et Performance-lastiger ist, mais den Vorteil, dass cet deutlich einfacher programmiert volonté peux.
variante B nécessaire keinen eigenen/weiteren Prozess mais seulement Threads. cet variante habe je gestern pour/à cause de Gonzo programmiert, qui aHttpDw.Inc était geschaffen.
qui aHttpDw.Inc beinhaltet qui aHttpDw.DLL quelle speziell pour qui aHttpDw.Inc programmiert ist, un Betreiben qui aHttpDw.Dll sans qui Include ist pas possible là qui Include Methoden pour qui DLL bereitstellt.
réellement peux avec qui Include mais pas seulement heruntergeladen volonté, sans cela dass XProfanprogramm "stoppt", mais es peut "zeitgleich" beliebig viele Downloads dans Auftrag gegeben volonté, quelle alle "zeitgleich" abgearbeitet volonté. si on so veux, ensuite pourrait on es comme "Downloadmanager" verkennen.
qui Include stellt im Grunde deux wichtige Opportunités bereit:
aHttpDw(string url)
Legt sur den Abarbeitungsstapel qui URL url et beginnt tout de suite qui données trop magasin. Zurückgegeben wird qui numéro des nächst-freien SLOT (Handle) quel später benutzt wird, si le données vollständig empfangen wurden. Es peut hierüber beliebig viele Sende/Lade-Aufträge abgesetzt volonté.
et
aHttpDw.frame()
si une Dossier vollständig heruntergeladen wurde, bzw. qui Antwort des Server vollständig empfangen wurde, ensuite gibt aHttpDw.frame den SLOT zurück, andernfalls zéro. Über qui Slotnummer venez on ensuite simple à qui Antwort. (Binary-Safe)
avec aHttpDw(url) vergibt on alors den Auftrag, et sur aHttpDw.frame() peux on asynchron/unregelmässig chercher, si peut-être bereits une Dossier vollständig geladen wurde.
qui données stehen bon alors zur Disposition, si on après fragt (asynchron) et qui Downloads beeinflussen den Hauptthread des XProfan pas.
je werde mais zunächst zur Include (aussi ici) un paire Testprogramme posten. Eines en wird plan aussi Gonzo son. |
|
|
| |
|
|