Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leutz,

C# .net 1.1

mal wieder ein Problem.

Ich möchte gern ermitteln ob eine Netzwerkverbindung besteht.

Meine Code verursacht einen Speicherüberlauf da ich es jede 1 Sekunde einmal prüfen möchte.

Vielleicht gibt es aber auch eine Möglichkeit auf ein Event zu warten. Hat da einer eine Idee?

...

ConnectionState Description = 0;

m_bIsNetworkConnected = bool.Parse(InternetGetConnectedState(ref Description, 0).ToString());

...

Geschrieben

Wie sieht denn deine Schleife aus? Poste mal den Code. Normalerweise sollte es bei nur jeder Sekunde keine Probleme geben:


 static void Main() {

            Thread t = new Thread(new ThreadStart(CheckInetConn));

            t.Start();

            Console.ReadLine();


        }


        public static void CheckInetConn() {

            InternetConnectionState flags = 0;

            while(true) {

                Console.WriteLine(

                    "InternetGetConnectedState : {0} - {1}",

                    (InternetGetConnectedState(ref flags, 0) ? "ONLINE" : "OFFLINE"), flags);

                Thread.Sleep(1000);

            }

        }

Geschrieben

So werd ich es nun machen... THX

...

private void NetworkWatcherStart()

{

WqlEventQuery query =

new WqlEventQuery("__InstanceModificationEvent",

new TimeSpan(0,0,5),

"TargetInstance isa \"Win32_NetworkAdapterConfiguration\"");

ManagementEventWatcher eventWatcher = new ManagementEventWatcher(query);

eventWatcher.EventArrived += new EventArrivedEventHandler(Delegate_EventArrived);

eventWatcher.Start();

}

private void Delegate_EventArrived(object sender, EventArrivedEventArgs e)

{

m_bIsNetworkConnected = IsNetworkConnected();

}

private bool IsNetworkConnected()

{

bool connected = SystemInformation.Network;

if (connected)

{

connected = false;

System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher("SELECT NetConnectionStatus FROM Win32_NetworkAdapter");

foreach (System.Management.ManagementObject networkAdapter in searcher.Get())

{

if (networkAdapter["NetConnectionStatus"] != null)

{

if (Convert.ToInt32(networkAdapter["NetConnectionStatus"]).Equals(2))

{

connected = true;

break;

}

}

}

searcher.Dispose();

}

return connected;

}

...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...