AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Zugriffsverletzung Idhttp.Get in verwendung mit Threads
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung Idhttp.Get in verwendung mit Threads

Ein Thema von goodvirus · begonnen am 11. Jan 2005 · letzter Beitrag vom 13. Jan 2005
Antwort Antwort
Benutzerbild von goodvirus
goodvirus

Registriert seit: 24. Aug 2004
Ort: Bremen
54 Beiträge
 
Delphi 7 Enterprise
 
#1

Zugriffsverletzung Idhttp.Get in verwendung mit Threads

  Alt 11. Jan 2005, 16:55
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)
Es ist schlimmer einen Freund zu mißtrauen als von ihm entäuscht zu werden.
  Mit Zitat antworten Zitat
Benutzerbild von goodvirus
goodvirus

Registriert seit: 24. Aug 2004
Ort: Bremen
54 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Zugriffsverletzung Idhttp.Get in verwendung mit Threads

  Alt 12. Jan 2005, 14:39
*push*
Währ echt schade wenns keine antwort geben würd...
Es ist schlimmer einen Freund zu mißtrauen als von ihm entäuscht zu werden.
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#3

Re: Zugriffsverletzung Idhttp.Get in verwendung mit Threads

  Alt 13. Jan 2005, 02:03
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 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
Dietmar Brüggendiek
Die 6 Probleme des Programmierers: 1. dauert das länger, als man 2. glaubt, 3. geht das nicht so, wie man sich das 4. schlau überlegt hat, und 5. sitzt der Fehler da, wo man ihn 6. zuletzt sucht
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:47 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