private static void GetResponseAsyncCompleted(
            IAsyncResult asyncResult)
        {
            WebRequestState completedState = (WebRequestState)asyncResult.AsyncState;
            HttpWebResponse response       =
                (HttpWebResponse)completedState.WebRequest
                .EndGetResponse(asyncResult);
            Stream       stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream);
            int          length = reader.ReadToEnd().Length;

            Console.WriteLine(FormatBytes(length));
            completedState.ResetEvent.Set();
            completedState.Dispose();
        }
        public static void Main(string[] args)
        {
            string url = "http://www.intelliTechture.com";
            if(args.Length > 0)
            {
                url = args[0];
            }

            Console.Write(url);
            WebRequest webRequest = WebRequest.Create(url);
            WebRequestState state =
                new WebRequestState(webRequest);
            IAsyncResult asyncResult = webRequest.BeginGetResponse(
                GetResponseAsyncCompleted, state);
            while(!asyncResult.AsyncWaitHandle.WaitOne(100))
            {
                Console.Write('.');
            }
            state.ResetEvent.Wait();
        }
        public static void Main(string[] args)
        {
            string url = "http://www.intelliTechture.com";

            if (args.Length > 0)
            {
                url = args[0];
            }

            Console.Write(url);
            WebRequest      webRequest = WebRequest.Create(url);
            WebRequestState state      =
                new WebRequestState(webRequest);
            IAsyncResult asyncResult = webRequest.BeginGetResponse(
                GetResponseAsyncCompleted, state);

            while (!asyncResult.AsyncWaitHandle.WaitOne(100))
            {
                Console.Write('.');
            }
            state.ResetEvent.Wait();
        }