2012-06-05 2 views
0

вот моего частичного кодожидания при загрузке HttpWebRequest

public MainWindow() 
     { 
      InitializeComponent(); 
try 
       {  
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.site.my/install.php?data=" + uniqueID + "&pass=" + pass); 
        request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request);     
       } 
       catch (Exception) 
       { 
       } 
} 
private void FinishWebRequest(IAsyncResult result) 
     { 
      HttpWebResponse response = (result.AsyncState as HttpWebRequest).EndGetResponse(result) as HttpWebResponse; 
      Stream dataStream = response.GetResponseStream(); 
      // Open the stream using a StreamReader for easy access. 
      StreamReader reader = new StreamReader(dataStream); 
      // Read the content. 
      string responseFromServer = reader.ReadToEnd(); 
      // Display the content. 
      Console.WriteLine(responseFromServer); 
      // Cleanup the streams and the response. 
      reader.Close(); 
      dataStream.Close(); 
      response.Close(); 

      if (responseFromServer == "1") 
      { 
       MessageBox.show("ok") 
      }else{ 
       MessageBox.show("no") 
      } 

     } 

хотя я использую асинхронный, кажется, окно будет «висеть» на некоторое время .. так что я думаю, что положить в индикаторе загрузки будет хорошо, правильно ? где и как я должен это выразить? я думаю о простом индикаторе загрузки, а не о индикаторе выполнения.

ответ

0

Прежде всего, это плохая практика поместить весь этот код в конструктор. Загруженное событие является более подходящим местом для этой логики. Во-вторых, ваш вопрос довольно расплывчатый: какой показатель загрузки вы имеете в виду? Вы хотите написать это самостоятельно, или вы получили сторонний? Что именно вы пытаетесь выполнить, каков дизайн вашего графического интерфейса?

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