Como usar o método WebClient.DownloadDataAsync () neste contexto?

Meu plano é que um usuário escreva um título de filme no meu programa e meu programa irá puxar as informações apropriadas de forma assíncrona para que a interface não congele.

Aqui está o código:

public class IMDB
    {
        WebClient WebClientX = new WebClient();
        byte[] Buffer = null;


        public string[] SearchForMovie(string SearchParameter)
        {
            //Format the search parameter so it forms a valid IMDB *SEARCH* url.
            //From within the search website we're going to pull the actual movie
            //link.
            string sitesearchURL = FindURL(SearchParameter);

            //Have a method download asynchronously the ENTIRE source code of the
            //IMDB *search* website.
            Buffer = WebClientX.DownloadDataAsync(sitesearchURL);


            //Pass the IMDB source code to method findInformation().

            //string [] lol = findInformation();

            //????

            //Profit.

            string[] lol = null;
            return lol;
        }

Meu problema real está no método WebClientX.DownloadDataAsync (). Não consigo usar uma URL de sequência para isso. Como posso usar essa função interna para baixar os bytes do site (para uso posterior vou converter isso para string, eu sei como fazer isso) e sem congelar minha GUI?

Talvez um exemplo claro do DownloadDataAsync para que eu possa aprender como usá-lo?

Obrigado, você é sempre um ótimo recurso.

questionAnswers(6)

yourAnswerToTheQuestion