Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Nicht alle Threads werden bearbeitet?! ... (https://www.delphipraxis.net/28172-nicht-alle-threads-werden-bearbeitet.html)

emploi 22. Aug 2004 17:30

Re: Nicht alle Threads werden bearbeitet?! ...
 
steht bei mir neben den postings :)

Borland Delphi 7 Enterprise


Bist du Assarbad?

[EDIT]
Es scheint übrigens zu laufen ;)
Das Problem sind nur die zu häufigen Anfragen
hintereinander. da blockt mich der server für ne
gewisse zeit, hab daher noch nen sleep eingebaut,
aber wie gesagt scheint zu klappen.
ob es sonderlich sicher ist und auf anderen
systemen (ich hab win2k laufen) lübbbt - k.a.
muss ich mal testen.
[/EDIT]

APP 22. Aug 2004 17:44

Re: Nicht alle Threads werden bearbeitet?! ...
 
Hallo emploi,

Oliver wird Deinen Code morgen netterweise prüfen,
ich habe im "Drüberfliegen" nur ein paar Sachen
gefunden, die Du vielleicht überdenken solltest:

"Done" ist eine lokale Variable, die, im Unterschied zu globalen Variablen,
solange nicht initialisiert ist, bis ihr ein Wert zugewiesen wurde.
Daher wird Deine Whileschleife IMHO wohl nicht immer funktionieren.

Ich würde die Abbruchbedingung noch einmal überdenken, man sollte niemals
eine Exception zur Steuerung einer Schleife verwenden.
Soweit ich sehe ist IdHttp1.Post eine Funktion die einen String zurückgibt,
ich nehme an, diesen kannst Du auswerten.
(Ich habe die Indies zwar installiert, aber leider die Hilfe dazu nicht :oops:)

Was passiert eigentlich mit Deiner Schleife,
wenn sie "o0" (unendlich) viele Exceptions produziert?

Bei einer Thread.Execute Schleife würde ich empfehlen, zusätzlich
Delphi-Quellcode:
WHILE (NOT Terminated) OR (NOT Application.Terminated)
einzubauen,
sonst läuft dein Thread nach Programmende "ewig und 3 Tage" weiter.

[HELLSEHMODUS EIN]
Blutiger Anfänger = Oliver = Assarbad :mrgreen:
[/HELLSEHMODUS AUS]

emploi 22. Aug 2004 19:27

Re: Nicht alle Threads werden bearbeitet?! ...
 
Zitat:

Zitat von APP
Hallo emploi,

"Done" ist eine lokale Variable, die, im Unterschied zu globalen Variablen,
solange nicht initialisiert ist, bis ihr ein Wert zugewiesen wurde.
Daher wird Deine Whileschleife IMHO wohl nicht immer funktionieren

geändert.


Zitat:

Zitat von APP
Ich würde die Abbruchbedingung noch einmal überdenken, man sollte niemals
eine Exception zur Steuerung einer Schleife verwenden.
Soweit ich sehe ist IdHttp1.Post eine Funktion die einen String zurückgibt,
ich nehme an, diesen kannst Du auswerten.
(Ich habe die Indies zwar installiert, aber leider die Hilfe dazu nicht :oops:)

Öhm weiss ich nicht so genau. Wenn der Indy Methode Post nicht erlaubt wird
zu connecten kommt ne "Socket Error" Exception. Hab oben im Thread auch schonmal
geschrieben das ich die Try Exception Schleife speziell darauf nochmal
ausrichten werde!


Zitat:

Zitat von APP
Was passiert eigentlich mit Deiner Schleife,
wenn sie "o0" (unendlich) viele Exceptions produziert?

Das sollte eigentlich nicht passieren. aber.. siehe oben.

Zitat:

Zitat von APP
Bei einer Thread.Execute Schleife würde ich empfehlen, zusätzlich
Delphi-Quellcode:
WHILE (NOT Terminated) OR (NOT Application.Terminated)
einzubauen,
sonst läuft dein Thread nach Programmende "ewig und 3 Tage" weiter.

Um Application.Terminated zu benutzen müsste ich die Application erstmal
an den Thread übergeben und ich denke das wäre schon wieder mist!
Und warum sollte ich WHILE NOT(Terminated) einbauen wenn ich eh nicht
vorhab die Threads von aussen zu beenden? Ausserdem hab ich glaub ich mal
gelesen das die Threads auch beendet werden wenn der Process beendet wird?!

mfg emploi

Blutiger Anfänger 23. Aug 2004 14:35

Re: Nicht alle Threads werden bearbeitet?! ...
 
Zitat:

Zitat von APP
[HELLSEHMODUS EIN]
Blutiger Anfänger = Oliver = Assarbad :mrgreen:
[/HELLSEHMODUS AUS]

[TANZT-WIE-RUMPELSTILZCHEN]
Das hat dir der Teufel gesagt, das hat dir der Teufel gesagt ...
[/TANZT-WIE-RUMPELSTILZCHEN]

Blutiger Anfänger 23. Aug 2004 14:39

Re: Nicht alle Threads werden bearbeitet?! ...
 
Zitat:

Zitat von emploi
Um Application.Terminated zu benutzen müsste ich die Application erstmal
an den Thread übergeben und ich denke das wäre schon wieder mist!
Und warum sollte ich WHILE NOT(Terminated) einbauen wenn ich eh nicht
vorhab die Threads von aussen zu beenden? Ausserdem hab ich glaub ich mal
gelesen das die Threads auch beendet werden wenn der Process beendet wird?!

Es gibt einen Unterschied zwischen "nettem" Beenden (graceful) und dem Beenden eines Threads duch das System (kill).


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.
Seite 2 von 2     12   

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