28. Juli 200619 j 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()); ...
28. Juli 200619 j Das ist doch das selbe was ich auch benutze... Für einmal prüfen kein Thema, aber lass mal die Methode in einer Schleife laufen. Damit bekommst dann auch so einen Effekt :-)
30. Juli 200619 j 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); } }
31. Juli 200619 j 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; } ...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.