NetworkAvailabilityChanged tritt nicht immer ein



  • Hi,

    ich bin ein kleines Programm am schreiben, das mir anzeigt, wie lange ich online war. So siehts bisher aus:

    using System;
     using System.IO;
     using System.Net.NetworkInformation;
     using System.Timers;
    
     class Test
     {
     	static uint counter;
     	static Timer timer;
    
     	static void IncrementMinuteCounter(object sender, ElapsedEventArgs e)
     	{
     		counter++;
     	}
    
     	static void ConnectionAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
     	{
     		if(e.IsAvailable)
     		{
     			timer.Start();
     			counter = 0;
     			Console.WriteLine("online");
     		}
     		else
     		{
     			timer.Stop();
     			FileStream flog = new FileStream("internet_counter.log", FileMode.Append);
     			StreamWriter log = new StreamWriter(flog);
    
     			Console.WriteLine("offline. been online for {0} seconds", counter);
    
     			log.WriteLine(counter);
    
     			log.Close();
     			flog.Close();
     		}
     	}
    
     	public static void Main()
     	{
     		timer = new Timer(1000);
     		timer.Elapsed += new ElapsedEventHandler(IncrementMinuteCounter);
    
     		NetworkChange.NetworkAvailabilityChanged += 
     			new NetworkAvailabilityChangedEventHandler(ConnectionAvailabilityChanged);
    
     		System.Console.ReadLine();
     	}
     }
    

    Mein Problem ist, dass das Event NetworkChange.NetworkAvailabilityChanged nicht immer ausgelöst wird, wenn ich offline gehe, und in einem solchen Fall auch beim Verbinden nicht mehr ausgelöst wird. Woran könnte das liegen?

    MfG,

    Michael E.



  • woran das genau liegt kann ich nicht sagen. aber es scheint mir eine recht unsichere methode zu sein. es wurde schon oft diskutiert, wie man feststellen kann, ob man online ist oder eben nicht. die einzige wirklich sichere methode ist und bleibt das anpingen von bekannten servern, die praktisch nie offline sind. www.google.de, www.heise.de sind solche kandidaten. je mehr seiten man überprüft, desto grösser ist dann natürlich auch die wahrscheinlichkeit, dass keiner der server offline ist.



  • Hmm, wenn keiner eine Idee hat, woran es liegen könnte, dann danke ich dir, cin, und mache es auf deine Weise.


Anmelden zum Antworten