AGB  ·  Datenschutz  ·  Impressum  







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

Thread-Probleme

Ein Thema von 3_of_8 · begonnen am 21. Okt 2006 · letzter Beitrag vom 22. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

Thread-Probleme

  Alt 21. Okt 2006, 16:24
Morgen.

Ich hab hier grad ein paar richtig fiese Probleme.

Wenn ich das richtig verstanden habe, laufen Indy-Server-Sockets in einem eigenen Thread.

Dieser Thread ruft beim Dateneingang das Ereignis OnExecute auf, beim Connecten und Disconnecten auch bestimmte Ereignisse.

Soo, und jetzt kommts:
Ich will beim Disconnecten eine MessageBox anzeigen. Das Problem: showmessage ist ja mehr oder weniger eine GUI-Funktion und die soll man nunmal nur aus dem Hauptthread heraus aufrufen. Das sorgt natürlich dafür, dass meine Anwendung recht unschön mit diversen Exceptions röchelnd zugrunde geht.

Genauergesagt, verschiedene Canvasses beschweren sich, dass ich nicht auf sie zeichnen darf oder sie zeichnen einfach an bestimmten Stellen ziemlichen Mist, der da eigentlich nichts verloren hat.

Wie verhindere ich das am besten?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Thread-Probleme

  Alt 21. Okt 2006, 19:44
ShowMessage aus einem Synchronize heraus aufrufen bzw. GUI kann man auch aus nem Thread heraus aufrufen, mit ShowMessage hatte ich noch keine Probleme, die kommen eher mit den VCL Komponenten des Hauptthreads.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Thread-Probleme

  Alt 21. Okt 2006, 19:47
Dieser Thread wird von den Indys kontrolliert...

Ich kann ihn nicht synchronisieren.

Aber wenn ShowMessage noch geht, ist es ja in Ordnung... Trotzdem habe ich recht seltsame Probleme mit dem Neuzeichnen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#4

Re: Thread-Probleme

  Alt 21. Okt 2006, 19:53
Deffiniere.

Es kann aber auch an Delphis Struktur liegen, weil die Handles sich ständig ändern.
Besonders beim Zeichnen in den Threads kenne ich diese Probleme, deshalb erstelle ich dafür eigene Canvas und Bitmaps, damit ich die Handles kontrollieren kann.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Thread-Probleme

  Alt 21. Okt 2006, 19:59
Ich zeichne eigentlich nur im Hauptthread. Das Problem an der Sache ist nur, dass mir das Ding in meinem Canvas seltsamerweise EInvalidOperations liefert oder für einen Augenblick ohne ersichtlichen Grund ein lila Quadrat zeichnet.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: Thread-Probleme

  Alt 21. Okt 2006, 20:12
Die Kompo selber zeichnet irgendwas irgendwo hin?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Thread-Probleme

  Alt 21. Okt 2006, 20:28
Ja, die hab ich geschrieben.

Und die überzeichnet sich kurzzeitig selbst teilweise mit lila Farbe.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#8

Re: Thread-Probleme

  Alt 21. Okt 2006, 20:38
Schon probiert, auf einem extra DC zu Zeichnen, bzw. dieses immer vor dem Zeichnen zu "holen" und danach zu "entlassen" (GetDC, ReleaseDC)?
Das hilft da meistens.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Thread-Probleme

  Alt 21. Okt 2006, 20:41
Warum?

Ich zeichne nur in der Paint-Methode meiner Komponente.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#10

Re: Thread-Probleme

  Alt 21. Okt 2006, 20:51
Weil, wenn in Threads gezeichnet wird da manches mal Probleme auftreten.
Jedenfalls ist das meine Erfahrung, nicht Delphi Handles zu verwenden um die Fehler zu vermeiden.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz