Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Zugriffsverletzung Idhttp.Get in verwendung mit Threads (https://www.delphipraxis.net/37871-zugriffsverletzung-idhttp-get-verwendung-mit-threads.html)

goodvirus 11. Jan 2005 15:55


Zugriffsverletzung Idhttp.Get in verwendung mit Threads
 
Hallo erstma.
Ich hab ein kleines Problem, ich hab ein Programm geschrieben das in soweit fertig ist, aber leider andauernt einfriert und keine Rückmeldung mehr gibt. Es belastet die internetverbindung sehr, da sehrrrrrr viel Idhttp.get-Abfragen ausgeführt werden.
Nun dacht ich mir, lager ich doch diese Abfragen in Threads aus um die stabilität des Programmes zu erhöhen. Doch leider musste ich nach einigem probieren festellen, das ich immer eine Zugriffsverletzung erhilt!
Nun dacht ich mir, das ich einen fehler in der Einbindung gemacht habe und habe nun versucht einfach mal in einem völlig neuem Projekt per idhttp.Get mir den Qt einer Seite zu holen.
Nunja Pustekuchen geht nicht krieg wie vorher ne Zugriffsverletzung.
Nun aber genug gelabert und ich zeig euch einfach ma den wichtigen teil des Qt, aber mich bitte nicht gleich in der Luft zereißen, da ich noch nicht sooo viel mit Threads gearbeitet habe.

Die Deklaration:
Code:
ThreadArray: array of TMyThread;
Aufruf des Threads:
Code:
Setlength(ThreadArray, 1);
ThreadArray[0]:=TMyThread.Create(true);
ThreadArray[0].Resume;
Der Threadcode:
Code:
procedure TMyThread.Execute;
begin
Synchronize(UpdateCaption);
end;

procedure TMyThread.UpdateCaption;
var getqt :string;
begin
getqt := Idhttp1.Get('www.delphipraxis.net');
end;
So ich weiß wirklich nicht was ich falsch gemacht habe, und ich hoffe ihr könnt mir helfen, achja hier noch die Zugriffsverletzung:
Code:
Expection der Klasse EAccessViolation aufgetren. Meldung: 'Zugriffsverletzung bei usw. im Modul 'Test.exe'
Mfg goodvirus(ich hoffe der code ist ausreichen um mein problem zu lösen)

goodvirus 12. Jan 2005 13:39

Re: Zugriffsverletzung Idhttp.Get in verwendung mit Threads
 
*push*
Währ echt schade wenns keine antwort geben würd...

Brüggendiek 13. Jan 2005 01:03

Re: Zugriffsverletzung Idhttp.Get in verwendung mit Threads
 
Hallo!

Irgendwie komme ich mit dem Problem nicht so ganz klar.

Zunächst einmal:
Ist das alles? Wenn Du nur hast:
Delphi-Quellcode:
procedure TMyThread.Execute;
begin
Synchronize(UpdateCaption);
end;
dann führst Du allen Code im Hauptthread aus! Die Nutzung eines Threads ist dann flüssiger als Wasser - nämlich überflüssig.

Was soll das dann werden, wenn es fertig ist?
Delphi-Quellcode:
procedure TMyThread.UpdateCaption;
var getqt :string;
begin
getqt := Idhttp1.Get('www.delphipraxis.net');
end;
Der Code kann unmöglich alles sein - Du deklarierst eine lokale Variable, weist ihr einen Wert zu und benutzt das Ergebnis nie. Der Compiler sollte warnen, daß der Werrt nie benutzt wird und optimiert normalerweise dann den ganzen Aufruf raus.

Es ist zunächst erforderlich, herauszufinden, wo genau der Fehler passiert. Also solltest Du den Thread-Code einmal im Einzelschritt-Modus durchgehen. Dann kannst Du ja den wirklich relevanten Teil posten.

Zitat:

Zitat von goodvirus
(ich hoffe der code ist ausreichen um mein problem zu lösen)

Nein, denn so wie es hier steht, ist kein Fehler zu sehen.

Gruß

Dietmar Brüggendiek


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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