Entwickler-Ecke
Internet / Netzwerk - Indy Ping im Thread
Joda - Do 06.09.07 18:44
Titel: Indy Ping im Thread
Hallo an alle da draußen
ich habe ein kleines Problem mittels der Indy Ping Kompo, und zwar habe ich das eigendliche Pingen in eine
Thread ausgelagert, da mein Programm in einen bestimmten Zeit Intervall alle Rechner im Netzwerk anpingen soll.
Das Pingen funktioniert soweit ganz gut.
Doch wenn ich einen Rechner anpinge der offline ist, geht die Procedure in eine Exception und dadurch friert
mein Programm für ca 1-2 Sekunden ein. habe schon alles versucht, bin langsam am verzweifeln.
Thread Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| type
TMyPing = class(TThread)
private
protected
procedure Execute; override;
public
end;
implementation
procedure TMyPing.Execute;
var
i: Integer;
begin
frmNachrichten.IdIcmpClient1.Host := strName;
for i := 1 to 1 do
begin
frmNachrichten.AntiFreeze.;
try
frmNachrichten.IdIcmpClient1.Ping;
frmNachrichten.ListView1.Items.Item[intHostNr].ImageIndex:=1;
except;
frmNachrichten.ListView1.Items.Item[intHostNr].ImageIndex:=0;
end;
frmNachrichten.AntiFreeze.Process;
end; |
Was mach ich nur verkehrt :roll:
Bin über jeden Tip sehr dankbar
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Narses - Do 06.09.07 19:13
Titel: Re: Indy Ping im Thread
Moin und :welcome: im Forum!
Joda hat folgendes geschrieben: |
Was mach ich nur verkehrt |
Ziemlich viel... :?
Die VCL ist nicht threadsave, deshalb mußt du auf VCL-Elemente synchronisiert zugreifen. Dazu gibt es die Methode
Synchronize(), die du aber nicht verwendest! :idea:
Joda hat folgendes geschrieben: |
Indy Ping Kompo |
Muss es unbedingt Indy sein? :nixweiss: Der Indy-Ping setzt nämlich Admin-Rechte voraus, weil die auf RawSockets aufsetzen.
Wenn es nicht unbedingt Indy sein muss, wäre
das hier vielleicht eine Alternative [
http://www.delphi-forum.de/topic_53259.html] für dich; da ist die Threadlösung schon integriert. ;)
cu
Narses
Joda - Do 06.09.07 22:56
Hallo Narses
Vielen Dank für deine Unit
ist wirklich sehr sehr gut danke, hab dadurch mein Problem lösen können :zustimm: :dance2:
es muss nun wirklich nicht immer Indy sein :rofl:
Vielen Dank nochmals
Gruss Joda :wave: :wave: :wave:
Narses - Do 06.09.07 23:01
Moin!
Joda hat folgendes geschrieben: |
Vielen Dank für deine Unit |
Bitte. :)
Markierst du den Thread noch entsprechend, wenn dein Problem gelöst ist? Danke. ;)
cu
Narses
Joda - Fr 07.09.07 11:02
Hallo Narses
klar kein Problem
Danke nochmals :lol:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!