AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread, Synchronize, MessageDlg & Interaktion

Ein Thema von Timelesk · begonnen am 20. Jul 2010 · letzter Beitrag vom 20. Jul 2010
 
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Thread, Synchronize, MessageDlg & Interaktion

  Alt 20. Jul 2010, 16:32

Fragen
1) Wenn ich das Terminate in die Procedure UpdateError reinpacke, worauf bezieht sich dann das Self? Immernoch auf den Thread oder auf den Thread des Hauptformulars? Weil durch Synchronize wird ja die Funktion im Hauptthread ausgeführt, oder?
Ja, wird im Hauptthread ausgeführt, aber Self bezieht sich immer auf die aktuelle Objektinstanz, also auf den Thread.

Zitat:
2) Ich habe festgestellt, dass der SubThread wartet, bis die Procedure UpdateError vollständig ausgeführt wurde. D.h. bis mein MessageDlg bestätigt wurde. Kann man das umgehen? Also der Thread soll dann einfach "auslaufen", sich beenden. Er hat seine Arbeit getan, er soll halt nur noch den MessageDlg anzeigen und gut ist.
Dann ist MessageDlg das falsche. Denn das wird afaik immer modal angezeigt. Du könntest auch eine Message an das Hauptformulat senden, und danach beenden. der Hauptthread zeigt dann die Dialogbox an.
Zitat:
Momentan ist es so, dass sich das Programm vollständig aufhängt sobald ich auf Ja klicke.
Ich kann 20x auf Nein klicken und dann auf Ja und es friert vollständig ein.
Verständlich. Denn wenn die Box angezeigt wird, ist der Thread noch nicht beendet. Und dann wird wieder StartThread aufgerufen (wohlgemerkt, der Thread ist wegen synchronize angehalten, ist aber noch aktiv.) und der Thread soll terminiert werden. Der antwortet aber nicht, weil er auf die Beendigung von StartThread wartet.
Klassischer Deadlock
  Mit Zitat antworten Zitat
 


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 07:55 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