AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VST UI controls like should only be manipulated through the main thread

VST UI controls like should only be manipulated through the main thread

Ein Thema von Hobbycoder · begonnen am 2. Apr 2018 · letzter Beitrag vom 13. Feb 2020
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#1

AW: VST UI controls like should only be manipulated through the main thread

  Alt 2. Apr 2018, 16:41
Warum sollte Synchronize() zu Deadlocks führen? Es ist gerade dazu da, um einen Thread mit dem Mainthread zu synchronisieren und die Aktionen entsprechend dann erst auszuführen.
Ja, aber in älteren Versionen von Delphi durfte man es nicht im Hauptthread aufrufen. Mittlerweile wird aber auch das korrekt behandelt, ebenso bei TThread.Queue und anderen solchen Funktionen. Wenn man also eine relativ aktuelle Version benutzt, braucht man da nicht mehr drauf zu prüfen, sondern kann es einfach aufrufen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: VST UI controls like should only be manipulated through the main thread

  Alt 2. Apr 2018, 17:26
Warum sollte Synchronize() zu Deadlocks führen? Es ist gerade dazu da, um einen Thread mit dem Mainthread zu synchronisieren und die Aktionen entsprechend dann erst auszuführen.
Ja, aber in älteren Versionen von Delphi durfte man es nicht im Hauptthread aufrufen. Mittlerweile wird aber auch das korrekt behandelt, ebenso bei TThread.Queue und anderen solchen Funktionen. Wenn man also eine relativ aktuelle Version benutzt, braucht man da nicht mehr drauf zu prüfen, sondern kann es einfach aufrufen.
Ja das kann natürlich sein.

Allerdings hat der TE nirgends seine Delphi Version vermerkt (weder im Profil, noch im ersten Post). Und die Meldung vom VST, dass Aktionen im MainThread ausgeführt werden sollen, ist soweit ich weiß erst seit ein paar Versionen drin. Und seit ein paar Versionen wird auch nur noch bis XE3 unterstützt. Und ich behaupte jetzt mal, dass dieser Fehler in XE3 nicht mehr existent war, oder? Ich habe zwar lange Zeit mit XE3 programmiert, aber habe nie Synchronize() im MainThread aufgerufen.
  Mit Zitat antworten Zitat
christophspaeth

Registriert seit: 7. Mär 2008
73 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: VST UI controls like should only be manipulated through the main thread

  Alt 13. Feb 2020, 12:36
Nachdem ich die Fehlermeldung in einer DLL hatte, die ein Form mit dem VST erzeugt hat, noch ein Hinweis auf https://stackoverflow.com/a/37770909/2131459.
Dort steht, dass eine DLL per se keinen eigenen MainThread hat und MainThreadID auf den Thread initialisiert wird, der die DLL geladen hat und man folglich in einer DLL mit GUI die MainThreadID selber initialisieren/umsetzen muss.
Christoph Späth
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz