AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wenn 2 Pingthreads falsche Rückgaben
Thema durchsuchen
Ansicht
Themen-Optionen

Wenn 2 Pingthreads falsche Rückgaben

Ein Thema von Jackie1983 · begonnen am 11. Dez 2009 · letzter Beitrag vom 12. Dez 2009
Antwort Antwort
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

Wenn 2 Pingthreads falsche Rückgaben

  Alt 11. Dez 2009, 16:55
Servus,

habe diesen Code
Delphi-Quellcode:
Function PingDeviceByIP(ADeviceIP : string; ATimeOut : integer = 3000;APingCount : integer = 4) : Integer;
var
  IdIcmp : TIdIcmpClient;
  rk : TReplayKnecht;
  i : integer;
begin
  IdIcmp := TIdIcmpClient.Create(nil);
  try
    IdIcmp.Host := ADeviceIP;
    IdIcmp.ReceiveTimeout := ATimeOut;
    IdIcmp.OnReply := rk.IdIcmpReply;
    try
      gPaketeEmpfangen := 0;

      for i:=0 to APingCount-1 do
      begin
        IdIcmp.Ping;
        sleep(10);
      end;
      result := gPaketeEmpfangen;
    except
      result := 0;
      exit;
    end;
    case IdIcmp.ReplyStatus.ReplyStatusType of
      rsErrorUnreachable : result := 0;
      rsTimeOut : result := 0;
    end;
  finally
    FreeAndNil(IdIcmp);
  end;
end;
Wenn ich zwei Threads habe, beide Rufen diese Methode auf, bekomme ich immer 2 als Rückgabewert.
Habe durchzufall auch mal gesehen 5, das kann ja gar nicht sein weil die Methode APingCount immer = 4 ist.

Liegt das am Thread?

gruß
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wenn 2 Pingthreads falsche Rückgaben

  Alt 11. Dez 2009, 16:57
Und wo wird deine Instanz von TReplayKnecht erzeugt?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#3

Re: Wenn 2 Pingthreads falsche Rückgaben

  Alt 12. Dez 2009, 06:00
gar nicht.
ok habe den "fehler"
gPaketeEmpfangen <- das g steht bei mir für global
Ist klar wenn 2 Threads auf die gleiche var zugreifen das da nur mist raus kommt
  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 00:35 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