0

これが私の部分的なコードです

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")
            }

        }

私はasyncを使用していますが、ウィンドウがしばらく「ハング」するようです。したがって、読み込みインジケーターを配置するのは良いことだと思いますよね?どこにどのように置くべきですか?プログレスバーではなく、単純な読み込みインジケーターだけを考えています。

4

2 に答える 2

0

まず第一に、このすべてのコードをコンストラクターに入れるのは悪い習慣です。Loadedイベントは、このロジックにとってより適切な場所です。第二に、あなたの質問は非常に曖昧です:あなたはどのような種類の負荷インジケーターを念頭に置いていますか?自分で書きたいですか、それともサードパーティのものを手に入れましたか?正確に何を達成しようとしていますか、GUIのデザインは何ですか?

于 2012-06-05T14:04:27.593 に答える
0

ここで提供されているコードhttp://elegantcode.com/2009/07/03/wpf-multithreading-using-the-backgroundworker-and-reporting-the-progress-to-the-ui/を使用して、バックグラウンドワーカーとアプリケーションはもうハングしません

于 2012-06-06T07:24:06.293 に答える