Mir würden dies bzgl. zwei Möglichkeiten einfallen:
- Alle Properties, die via DLL abgefragt werden können sollen, sollten via CriticalSection/TMonitor oder sonst was abgesichert werden. Dann spielt es keine Rolle mehr, welcher Thread darauf zugreift. Dies kann aber seeeehr komplex werden.
- Eine weitere Idee wäre es, eine Schnittstelle zu schaffen, mit der ein DLL-Thread kommunizieren kann. Diese Schnittstelle synchronisert dann jeden Aufruf mit dem Mainthread. Vorteil hiervon wäre, dass du die Technik "hinter" der Schnittstelle auch noch austauschen könntest, ohne, dass du die DLLs ändern müsstest.
Vielleicht wäre es für alle anderen noch interessant, wie viele Daten denn für die DLLs zur Verfügung stehen müssen. Sind es wirklich beliebig viele Daten, dann ist so eine Schnittstelle evtl. auch sehr komplex...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)