static void monitor_Updated( NetworkMonitor sender, NetworkMonitorEventArgs args )
        {
            String message;
             if( args.ReceivedResponse )
            message = String.Format( "{0}: Monitoring {1} updated. Response status: {2} ({3})", args.RequestTimestamp.ToString(), sender.MonitoredUri.AbsoluteUri, args.Response.StatusCode, Convert.ToUInt16( args.Response.StatusCode ) );
             else
            message = String.Format( "{0}: Monitoring {1} updated. Response not received.", args.RequestTimestamp.ToString(), sender.MonitoredUri.AbsoluteUri );

             Console.Out.WriteLine( message );
        }
        static void Main( String[] args )
        {
            const String address = "http://www.google.com";

             {
            NetworkMonitor monitor = new NetworkMonitor( address );

            monitor.MonitoringStarted += monitor_MonitoringStarted;
            monitor.MonitoringStopped += monitor_MonitoringStopped;
            monitor.Updated += monitor_Updated;

            Monitor = monitor;
             }

             Monitor.BeginMonitoring( 1500 );

             Console.Out.WriteLine( "Press any key to stop monitoring..." );
             Console.In.Read();

             Monitor.StopMonitoring();
        }
        static void monitor_MonitoringStopped( NetworkMonitor sender, EventArgs args )
        {
            DateTime now = DateTime.Now;

             Console.Out.WriteLine( String.Format( "{0}: Monitoring {1} stopped.", now.ToString(), sender.MonitoredUri.AbsoluteUri ) );
        }