AGB  ·  Datenschutz  ·  Impressum  







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

Exception bei Thread-Verwendung

Ein Thema von ManuMF · begonnen am 14. Jun 2007 · letzter Beitrag vom 19. Jun 2007
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#11

Re: Exception bei Thread-Verwendung

  Alt 15. Jun 2007, 18:30
Jetzt wollte ich das gerade umsetzen, da bin ich an ein weiteres Problem gestoßen: Ich muss auch aus anderen Prozeduren auf den IdHTTP zugreifen, etwa um ihn per Buttonclick zu stoppen. Das geht also leider nicht
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Exception bei Thread-Verwendung

  Alt 15. Jun 2007, 18:43
Natürlich geht das. Dazu musst du nur den Zugriff (threadsicher!) auf die HTTP-Komponente über den Thread implementieren.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#13

Re: Exception bei Thread-Verwendung

  Alt 15. Jun 2007, 18:51
Berühmte Frage : Wie?
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Exception bei Thread-Verwendung

  Alt 16. Jun 2007, 13:14
Hi,
Schon mal was von Hier im Forum suchenCritical Section gehört?
Oder du benutzt einen Flag und lässt den Thread die Arbeit tun.
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#15

Re: Exception bei Thread-Verwendung

  Alt 16. Jun 2007, 14:31
bisher noch nicht, hab grad mal geschaut... uff, das ist ein sehr umfangreiches Thema.

Das mit CriticalSection hab ich nicht wirklich verstanden.
Dafür habe ich stattdessen die Komponente (IdThreadComponent) entfernt und den Thread selbst erzeugt. Wenn ich, wie hier gelesen, das ganze synchronisiert mache, gestaltet sich der Ablauf so, als ob es gar keinen Thread gäbe (Programm reagiert nicht oder selten). Wenn ich den eigenen Thread unsynchronisiert laufen lasse, reagiert das Programm problemlos: Die Progressbars erden aktualisiert, Klicks angenommen. Nur am Ende wieder die Exception mit dem Handle

Das Problem bei der Sache ist, dass die Progressbars etc. im onWork des IdHTTP aktualisiert werden, ich kann also nicht einfach die ganze Komponente in denThread verschieben.
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Exception bei Thread-Verwendung

  Alt 16. Jun 2007, 15:16
Versuch mal die Komponente Dynamisch im Thread zu erzeugen, zunächst mal ohne Progress usw. wenn das soweit geht kannst dun nach und nach die Visualisierung einbauen.

Was das hängen betrifft, wenn du z.B: IDHttp.Get syncronisierst kannst du dir den Thread auch gleich schenken.

Zeig mal ein bischen relevanten Code
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#17

Re: Exception bei Thread-Verwendung

  Alt 16. Jun 2007, 15:31
Hmm also wenn ich die Progressbars ausbaue, dann können sie nicht mehr stocken, und das Problem ist natürlich gelöst

Wie oben geschrieben, die einzige Zeile Code, sie aber eben das ganze Prog aufhält, ist IdHTTP.Post. Die Aktualisierung mache ich im onWork, deshalb wäre die dynamische Erzeugung eigentlich nutzlos, da der Zugriff auf die VCL ja bleibt. Übrigens wäre auch eine Aktualisierung per Timer nutzlos, da das Timer-Event nicht wie eingestellt kommt, sondern nur, wenn onWork ausgeführt wird und darin ProcessMessages steht.

Wie kann ich denn Post synchronisieren? Bzw. durch das Synchronisieren hängt alles erst ja.
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Exception bei Thread-Verwendung

  Alt 16. Jun 2007, 15:37
Hallo,

synchronisiere nicht post.

verarbeite im thread das OnWork-Event und Synchronisiere dann ein Event, das du nach außen reichst.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#19

Re: Exception bei Thread-Verwendung

  Alt 16. Jun 2007, 15:38
Zitat von DGL-luke:
verarbeite im thread das OnWork-Event
wie das? bzw. wie weiß ich, wann ich das synchronisierte Event ausführen soll?
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Exception bei Thread-Verwendung

  Alt 17. Jun 2007, 04:04
Ich mach mal ein Pseudocode Beispiel.

Delphi-Quellcode:
procedure MyOnWorkEvent(...);
begin
...
Syncronize(MyGUIUpdate);
...
end;

procedure MyGUIUpdate;
begin
...
Progressbar.Position := MyProgress;
...
end;
Ich hoffe jetzt wird es klar was wir meine (ich hoffe DGL-Luke hat das auch so ähnlich gemeint)
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 23:10 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 by Thomas Breitkreuz