/// <summary>
        /// Waits the until network card is up.
        /// </summary>
        /// <returns></returns>
        public bool WaitUntilNetworkCardIsUp(int maxWaitTimeValue = MAX_WAIT)
        {
            NetworkCardUp = false;

            maxWaitTime = maxWaitTimeValue;
            pingCounter = 0;

            try
            {
                StatisticalData data = ClimbSmallHill;
                IAsyncResult    ar   = data.BeginInvoke(null, null);

                while (!ar.IsCompleted)
                {
                    Console.WriteLine("Waiting.....");
                    Thread.Sleep(20 * IDLE_TIME);
                }
                Console.WriteLine("Wait is finished...");
                Console.WriteLine("Time Taken for Network card is up ....{0}",
                                  data.EndInvoke(ar).ToString() + "..Seconds");
            }
            finally
            {
            }

            return(NetworkCardUp);
        }
        public void Test04()
        {
            finito = false;
            NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);

            StatisticalData data = ClimbSmallHill;
            IAsyncResult    ar   = data.BeginInvoke(null, null);

            while (!ar.IsCompleted)
            {
                Console.WriteLine("Waiting.....");
                Thread.Sleep(20 * IDLE_TIME);
            }
            Console.WriteLine("Wait is finished...");
            Console.WriteLine("Time Taken for  climbing ....{0}",
                              data.EndInvoke(ar).ToString() + "..Seconds");

            Console.ReadLine();
            Console.WriteLine("Esecuzione terminata");

            NetworkChange.NetworkAvailabilityChanged -= NetworkChange_NetworkAvailabilityChanged;
        }