Как использовать WebClient без блокировки пользовательского интерфейса?

Может ли кто-нибудь указать мне на учебник или предоставить образец кода для вызова System.Net.WebClient (). DownloadString (url) , не замораживая пользовательский интерфейс в ожидании результата?

Я полагаю, это нужно делать с помощью потока? Есть ли простая реализация, которую я могу использовать без излишних накладных расходов?

Спасибо!


Реализован DownloadStringAsync, но пользовательский интерфейс все еще зависает. Есть идеи?

    public void remoteFetch()
    {
            WebClient client = new WebClient();

            // Specify that the DownloadStringCallback2 method gets called
            // when the download completes.
            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(remoteFetchCallback);
            client.DownloadStringAsync(new Uri("http://www.google.com"));
    }

    public void remoteFetchCallback(Object sender, DownloadStringCompletedEventArgs e)
    {
        // If the request was not canceled and did not throw
        // an exception, display the resource.
        if (!e.Cancelled && e.Error == null)
        {
            string result = (string)e.Result;

            MessageBox.Show(result);

        }
    }
5
задан Johnny 25 May 2011 в 02:32
поделиться