Exemplo n.º 1
0
        protected override void OnMouseClick(MouseEventArgs e)
        {
            // GUI-поток инициирует асинхронный веб-запрос
            Text = Resources.StartWebRequestMsg;
            WebRequest webRequest = WebRequest.Create(DefaultHost);

            webRequest.BeginGetResponse(SyncContextUtils.SyncContextCallback(asyncResult =>
            {
                // Если мы попали сюда, это должен быть GUI-поток,
                // значит, обновляем пользовательский интерфейс
                var request = asyncResult.AsyncState as WebRequest;
                if (request != null)
                {
                    try
                    {
                        using (var webResponse = request.EndGetResponse(asyncResult))
                        {
                            Text = string.Format(Resources.ResponseLengthMsg, webResponse.ContentLength);
                        }
                    }
                    catch (WebException webEx)
                    {
                        Text = webEx.Message;
                    }
                }
            }), webRequest);
            base.OnMouseClick(e);
        }
Exemplo n.º 2
0
        private void StartRequestOnMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            // GUI-поток инициирует асинхронный веб-запрос
            Title = Properties.Resources.WebRequestInitiatedMsg;
            WebRequest webRequest = WebRequest.Create(DefaultHost);

            webRequest.BeginGetResponse(SyncContextUtils.SyncContextCallback(result =>
            {
                // Если мы попали сюда, это должен быть GUI-поток,
                // значит, обновляем пользовательский интерфейс
                var request = result.AsyncState as WebRequest;
                if (request != null)
                {
                    try
                    {
                        using (WebResponse response = request.EndGetResponse(result))
                        {
                            Title = string.Format("Content length: {0}", response.ContentLength);
                        }
                    }
                    catch (WebException webEx)
                    {
                        Title = webEx.Message;
                    }
                }
            }), webRequest);
        }