Comment utiliser le client web.DownloadDataAsync() cette méthode dans ce contexte?
Mon plan est d'avoir un utilisateur d'écrire un titre de film dans mon programme et mon programme va tirer la appropriée de l'information de manière asynchrone pour que l'INTERFACE utilisateur ne gèle pas.
Voici le code:
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;
}
Mon réel problème réside dans le WebClientX.DownloadDataAsync() la méthode. Je ne peux pas utiliser une chaîne URL. Comment puis-je utiliser cette fonction intégrée pour télécharger les octets du site (pour l'utiliser plus tard je vais convertir cette chaîne, je sais comment faire) et sans geler mon INTERFACE?
Peut-être un exemple claire de la DownloadDataAsync si je peux apprendre comment l'utiliser?
Merci, vous êtes toujours comme une grande ressource.
Marc, ce que d'autres site a des informations comme IMDB que je PEUX utiliser? Merci pour l'aide.
Sincèrement, je n'ai aucune idée.
developer.rottentomatoes.com
aussi, themoviedb.org et thetvdb.com qui, je crois, les deux ont des Api que vous pouvez utiliser pour accéder aux données directement et vous épargner beaucoup de temps. 😉
OriginalL'auteur Sergio Tapia | 2009-10-18
Vous devez vous connecter pour publier un commentaire.
Vous devez gérer la
DownloadDataCompleted
événement:La args contient d'autres éléments d'information relatifs aux conditions d'erreur etc - vérifier ceux qui sont trop.
Notez également que vous serez à venir dans
DownloadDataCompleted
sur un thread différent; si vous êtes dans une INTERFACE utilisateur (winform, wpf, etc) vous aurez besoin pour obtenir le thread de l'INTERFACE utilisateur avant de mettre à jour l'INTERFACE utilisateur. De winforms, utilisezthis.Invoke
. En WPF, regardez laDispatcher
.DownloadDataCompleted
, comme pourRunWorkerCompleted
, voir msdn.microsoft.com/en-us/library/cc221403%28VS.95%29.aspxOriginalL'auteur Marc Gravell
Il s'agit d'une nouvelle DownloadDataTaskAsync méthode qui permet d'attendre le résultat. Il est plus simple à lire et plus facile à câbler, et de loin. Je ne l'utiliserais que...
Il utilise async/await avec le groupe classe. Il est asynchrone autant que la réponse ci-dessus. La seule différence est que vous utilisez la méthode de DownloadDataCompleted ci-dessus et que vous utilisez une attendent aux commandes de la suite dans ma version. Si vous voulait les rapports sur les progrès ou l', comme je pourrais le faire différemment, mais si vous voulez juste une continuation à l'achèvement de cette façon fonctionne tout aussi bien avec moins de code.
Si vous souhaitez faire d'autres choses pendant que la Tâche est en cours d'exécution, vous n'avez pas l'attendre et de faire vos trucs, puis ajouter une poursuite. Check this out pour info.
OriginalL'auteur Bill Forney
Si quelqu'un ci-dessus en utilisant des applications web ou des sites web veuillez régler Async = true " dans la directive de page de la déclaration dans le fichier aspx.
OriginalL'auteur ssmsnet
OriginalL'auteur Rubens Farias
http://workblog.pilin.name/2009/02/system.html
OriginalL'auteur OnicDr
//utilisation de la classe ManualResetEvent
OriginalL'auteur Hung Le