Autor Beitrag
Joda
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 06.09.07 18:44 
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:

ausblenden 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
    { Private declarations }
  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 user profile iconNarses: Code- durch Delphi-Tags ersetzt

_________________
Möge die Macht mit dir sein
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 06.09.07 19:13 
Moin und :welcome: im Forum!

user profile iconJoda 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:

user profile iconJoda 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 für dich; da ist die Threadlösung schon integriert. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Joda Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 06.09.07 23:01 
Moin!

user profile iconJoda 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
Joda Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 07.09.07 11:02 
Hallo Narses

klar kein Problem

Danke nochmals :lol: