AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem bei der Ausführung eines Threads

Problem bei der Ausführung eines Threads

Ein Thema von Tommahawk · begonnen am 27. Jul 2009 · letzter Beitrag vom 27. Jul 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Problem bei der Ausführung eines Threads

  Alt 27. Jul 2009, 11:03
Jupp, ich bleibe bei meiner Aussage. Und wie schon gesagt wurde, macht man es genau umgekehrt: Ein Thread bearbeitet die Daten und die GUI kümmert sich um die GUI - was auch irgendwie mehr Sinn ergibt, wie ich finde. Wenn der Thread startet wird ein Zeitgeber gestartet, der die farbe des Panels periodisch ändert und wenn der Thread terminiert, wird der Zeitgeber wieder angehalten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tommahawk

Registriert seit: 28. Mai 2003
Ort: Überlingen
18 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Problem bei der Ausführung eines Threads

  Alt 27. Jul 2009, 11:21
@Luckie:

Hast Du den folgenden Teil meiner letzten Antwort gelesen?

Zitat:
Im Grunde genommen, ist das hier ein vereinfachtes Beispiel. Mir war nicht ganz klar, dass ich so weit ausholen muss.

Im ganz Speziellen geht es darum, über eine TCP/IP-Verbindung von einem TCP/IP-Server eine Datei abzuholen, lokal abzuspeichern und zu verarbeiten und dem TCP/IP-Server mitzuteilen, ob die lokale Verarbeitung der Datei erfolgreich ausgeführt worden ist, oder eben nicht. Während der lokalen Verarbeitung der Datei muss die Verbindung zum TCP/IP-Server durch einen regelmäßigen "Ping" aufrechterhalten werden, da sonst der TCP/IP-Server die Verbindung nach 10 Sekunden abbricht. Auf den eigentlichen Quelltext der Anwendung und somit auf den Quelltext der lokalen Verarbeitung der Datei, sowie auf den TCP/IP-Server habe ich keinen Einfluss. Ich stelle lediglich eine Klasse zur Verfügung, in der intern die gesamte TCP/IP-Kommunikation implementiert ist. Nur der "Ping", den ich in einen Thread ausgelagert habe, scheint genauso wenig zu funktionieren, wie das Ändern der Farbe des Panels in meinem vereinfachten Beispiel.

Viele Grüße

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Problem bei der Ausführung eines Threads

  Alt 27. Jul 2009, 11:53
Und wo ist das Problem das ganze in einen Thread auszulagern?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.445 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Problem bei der Ausführung eines Threads

  Alt 27. Jul 2009, 13:35
@Tommahawk
Du hast scheinbar noch nicht ganz verstanden, was bei Synchronize eigentlich passiert:
1. Halte diesen Subthread an.
2. Warte so lange, bis der Hauptthread gerade nichts mehr zu tun hat.
3. Lass den Hauptthread die Aufgabe ausführen.
4. Führe den Subthread weiter aus.

Und am Punkt 2 scheitert dein Konzept.
So lange der Hauptthread beschäftigt ist, wirds nichts mit Blinken (oder was auch immer).
Natürlich könntest du im Hauptthread auch regelmäßig ProcessMessage aufrufen.
Wenn das möglich ist, würde aber auch ein simpler Timer zum Blinken genügen.
  Mit Zitat antworten Zitat
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 10:32 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