2014-12-27 3 views
0

Я пытаюсь отправить логин и пароль от TEXT filds к веб-серверу с помощью метода POSTWPF приложение замерзает при нажмите на кнопку

Когда я нажимаю на кнопку замораживает мой WPF приложения.

Через 2-5 секунд приложение было разморожено, и я могу что-то сделать в приложении.

Помогите мне изменить свой код, который не будет заморожен. Благодаря!

Это код

var request = (HttpWebRequest)WebRequest.Create("http://www.lololo.net/lolo"); 
    var postData = "login=" + loginPost; 
    postData += "&password=" + passwordPost; 
    var data = Encoding.ASCII.GetBytes(postData); 
    request.Method = "POST"; 
    request.ContentType = "application/x-www-form-urlencoded"; 
    request.ContentLength = data.Length; 

    using (var stream = request.GetRequestStream()) 
    { 
     stream.Write(data, 0, data.Length); 

    } 
    var response = (HttpWebResponse)request.GetResponse(); 
    responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

ответ

1

Ваш GUI не будет заблокирован больше, если вы звоните в веб-сервер асинхр. Используйте этот код, чтобы попробовать: (вместо request.GetResponse)

 request.BeginGetResponse((ar) => 
     { 
      var response = (HttpWebResponse)request.EndGetResponse(ar); 
      responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

      // do something with the string 
     }, null); 
+0

Это нормально для .NET 4.0, но для .NET 4.5 или более поздней версии, идиоматических способ будет использовать '' async' и await'. Возможно, вы захотите обновить свой ответ с помощью идиоматического примера. –

Смежные вопросы