Announcement

Collapse
No announcement yet.

Assertion Aktueller Thread = VCL-Thread?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Assertion Aktueller Thread = VCL-Thread?

    In welchem Thread bin ich?

    Unser Delphi 7 Executable bedient mehrere "Terminalclients" via
    TIdTCPServer.CommandHandler0Command.

    Nach längerem Einsatz habe ich (durch die Einführung einer ADO-DB Verbindung
    und fehlendem CoInitialize) festgestellt, dass dies kein Eventhandler
    im VCL-Thread ist.

    Während der Laufzeit werden Dinge in ein RichEdit geschrieben, was trotz
    fehlendem Synchronize() bisher erstaunlich gut ging. (Solange das Fensterhandle
    gültig indem das Fenster sichbar ist, jedenfalls.)

    Meine Fragen: 1) Wie kann ich feststellen, dass ich im VCL-Thread bin, damit
    das in Zukunft nicht mehr passiert - also sozusagen

    ASSERT CurrentThread.IsVCLThread

    Falls ich im VCL-Thread bin, ist es ein Problem trotzdem Synchonize aufzurufen?
    Sendet die VCL intern eine "Thread-blockierende" Message, (also praktische einen
    ganz normalen Methodenaufruf) wenn es der eigene Thread ist, oder sind
    Reihenfolgenprobleme zu erwarten? Mit anderen Worten: Kann ich
    grundsätzlich via Synchonize in das RichEdit schreiben?
Working...
X