![]() |
AW: Mehrere Prozesse in einer "Anwendung"
Zitat:
Grundsätzlich laufen alle aufgerufenen exportierten Prozeduren in dem Tread, über welchen sie aufgerufen wurden. Aber ja, DLLs haben erstmal ihre eigenen gobalen VCL-/RTL-Variablen, welche getrennt von den Variablen der EXE sind. Außer bei BPLs und DLLs, wo man es manuell verknüpft hat, dazu dann noch der eigene Speichermanager, außer bei Vewendung eines Shared MMs, und die eigene RTTI. Vorallem die RTTI sind dann hinderlich, wenn man z.B. die VCL der DLL im selben Thread des VCL-Threads der EXE laufen lässt. Darum gibt es auch die wenigsten Probleme, wenn man alles komplett trennt und das Ganze wirklich in einem fremden Prozess laufen lässt. Im selben Prozess, auch wenn es in eine DLL ausgelagert wurde, bleibt denoch der Arbeitsspeicher gemeinsam und Probleme können sich auf den Hauptthread auswirken. |
AW: Mehrere Prozesse in einer "Anwendung"
Zitat:
|
AW: Mehrere Prozesse in einer "Anwendung"
Eine DLL kann keine Threads haben, weil sie nie zu einem Prozess selbst werden kann, da sie nicht "ausführbar" ist. Ein Prozess (mit Threads) kann nur die exportierten Funktionen laden und ausführen in den eigenen Threads. Eine exportierte DLL Funktion kann zwar einen Thread erzeugen, dieser läuft dann aber im Kontext des Prozesses, der diese exportierte Funktion aufgerufen hat.
*Schlaubischkumpf jetzt müüüüde. Schlaubischlumpf muss ruhen. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz