Methode im ThreadContext ausführen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Methode im ThreadContext ausführen

Beitrag von mschnell »

Bergmann89 hat geschrieben:dass das iwie nich wirklich eventbasiert geht. Zumindest nich, wenn ich es auf Linux und Windoof nutzen will.


Natürlich geht das. Wie gesagt: Die Event-Geschichte hat mit den Sockets überhaupt nichts zu tun. Das ist rein eine Frage der Programmierung im User Code oder in der Pascal-Library. Die geeignete Methode ist eben, eine Thread im blocking read warten zu lassen (also im Endeffekt Betriebssystem API) und dann eine Spach-Event zu schmeißen, wenn er aus dem Lesen zurückkommt. (Inter-Thread-Kommunikation im Rahmen der Programmiersprache).

Die in Delphi üblichen Libraries Indy und AsyncPro machen das so. Der Event kommt aber da immer im MainThread aus, weil die Event-Queue der Programm-Library verwendet wird, und die unterstützt keine Events für andere Threads.

-Michael

Antworten