Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: Mehrere Prozesse in einer "Anwendung"

  Alt 29. Apr 2017, 02:29
Wie himitsu schon gesagt hat... Ne DLL - jede DLL hat ihren eigenen VCL-Thread also eigentlich "einfach" nur die ganze Anwendung in eine DLL packen und ein Hauptprogramm, dass die entsprechenden DLL lädt...
Eine DLL hat keine Threads.
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.
$2B or not $2B

Geändert von himitsu (29. Apr 2017 um 02:34 Uhr)
  Mit Zitat antworten Zitat