Du könntest ein Objekt der Klasse
TEvent erstellen.
FMyEvent := TEvent.Create(nil, False, False, 'MyEvent');
Später in der
DLL möchtest du dich schlafen legen und auf das Eintreffen der Daten warten:
wr := FMyEvent.WaitFor(30000); // max. 30 sekunden warten
Das Ergebnis in wr muss anschliesend ausgewertet werden!
Wenn das OnRead Event ankommt und die Daten da sind, dann:
FMyEvent.SetEvent;
Ob das wirklich so funktioniert kann ich dir nicht garantieren, aber die Chancen sind gut.