Accueil > Forum > > > > methode async
methode async
lundi 18 juin 2012 à 11:13:20 |
methode async

contender59
|
Bonjour a tous!
Merci de m'accorder un peu de votre temps
J'ai une petite methode qui récupère des tweets sur Twitter en fonction d'un tag particulier.
J'aimerai rendre cette méthode Asynchrone pour quel ne freeze pas toute mon application.
Code C# :
public static List<Tweet> GetSearchResults(string searchString)
{
using (WebClient web = new WebClient())
{
//More parameters then this. Most important is the page paramater. You can &page=1 to xxx.
//few parameters in the url : &rpp=100 for 100answer | %23 for hashtag | lang=en for english msg......
// exemple: http://search.twitter.com/search.atom?lang=en&rpp=100&q=%23AnHashTag-filter:retweets
// -filter:retweets delete duplicates
string url = string.Format("http://search.twitter.com/search.atom?lang=en&q=%23{0}", searchString); //HttpUtility.UrlEncode(searchString)
WebClient client = new WebClient();
#region AsABrowser
//Pretend to be Google Chrome
//Pretending to be a browser instead of an app seems to make twitter respond faster
client.Headers.Add("Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
client.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3");
client.Headers.Add("Accept-Language: en-US,en;q=0.8");
client.Headers.Add("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16");
#endregion
#region TweetFormat
XDocument doc = XDocument.Load(url);
XNamespace ns = "http://www.w3.org/2005/Atom";
List<Tweet> tweets = (from item in doc.Descendants(ns + "entry")
select new Tweet
{
Id = item.Element(ns + "id").Value,
Published = DateTime.Parse(item.Element(ns + "published").Value),
Title = item.Element(ns + "title").Value,
Content = item.Element(ns + "content").Value,
Link = (from XElement x in item.Descendants(ns + "link")
where x.Attribute("type").Value == "text/html"
select x.Attribute("href").Value).First(),
Image = (from XElement x in item.Descendants(ns + "link")
where x.Attribute("type").Value == "image/png"
select x.Attribute("href").Value).First(),
Author = new Author()
{
Name = item.Element(ns + "author").Element(ns + "name").Value,
Uri = item.Element(ns + "author").Element(ns + "uri").Value
}
}).ToList();
return tweets;
#endregion
}
}
J'ai regardé pas mal d'explication sur le net, mais rien me permettant de récupérer ma list de tweet a la fin.
Quelqu'un saurait-il m'aider ?
merci beaucoup
|
|
lundi 18 juin 2012 à 14:51:35 |
Re : methode async

krimog
|
Salut,
Le problème de l'asynchrone est surtout de se remettre sur le thread graphique pour l'affichage des résultats.
Déjà, un moyen très simple : la classe BackgroundWorker.
Tu crées un champ List<Tweet> dans ta classe. Tu mets les résultats de ta méthode dans ce champ.
Tu abonnes ta méthode (ou tu abonnes une méthode qui appelle ta méthode) à l'événement DoWork du BackgroundWorker.
Tu abonnes ensuite la méthode qui affiche les résultats (depuis le champ que je t'ai demandé de créer) à l'événement RunWorkerCompleted.
Une fois que c'est fait, lorsque tu veux lancer ta recherche asynchrone, tu appelles juste monBackgroundWorker.RunWorkerAsync();
Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
|
|
lundi 18 juin 2012 à 16:02:47 |
Re : methode async

contender59
|
Réponse acceptée !
Problème résolue :)
Je poste si besoin ;)
Code C# :
public static void GetSearchResultsAsync(string searchString, Action<List<Tweet>> callback)
{
ThreadPool.QueueUserWorkItem((WaitCallback)(o =>
{
var results = GetSearchResults(searchString);
callback(results);
}));
}
Et dans mon control :
Code C# :
TweetSearch.GetSearchResultsAsync((String)args.NewValue, new Action<List<Tweet>>(delegate(List<Tweet> tweetList)
{
customControlInstance.Dispatcher.Invoke(new Action(delegate{
customControlInstance.m_PartlstTweets.ItemsSource = tweetList;
} ));
}));
Bonne journée !
|
|
Cette discussion est classée dans : client, item, element, ns, value
Répondre à ce message
Sujets en rapport avec ce message
Ca rame sévère ! [ par billou_13 ]
Voila, g fait un programme serveur en utilisant les NetworkStream et je c pas pourquoi, dès qu'il y a 3 clients minimum, le serveur se met a ramer sév
[LINQ] besoin d'un coup de main avec linq et ooxml [ par teddyalbina ]
Bonjour a tous j'ai besoin de votre aide, pour une requête linq. Je veux récupérer dans un document OOXML les métadonnées ( titre, auteur etc...). Ma
C# insertion XML probleme [ par meme06 ]
j'ai un xml et je trouve pas comment inserer des données a l'interieurmon XML <Stock n
xml Parsing sur WP7 [ par MariamKh ]
Bonjour, j'ai crée un code en c# (sur Windows Phone 7) qui affichera des données extraites d'un fichier xml, mais il ne fonctionne pas ou il m'affiche
WCF : Implémentation d'un service égal à égal [ par billyarmano ]
bonjour, je suis en de faire une application wcf mais j'ai deux problèmes : 1) j'ai un service distribué sur plusieurs machines et j'ai un client sur
Communication client/Serveur en WCF [ par billyarmano ]
j'ai un problème avec la communication du service et du client. j'implémente un service windows qui est Hebergé dans une application ServiceWindows( d
Communication WCF CLient/Serveur [ par billyarmano ]
je repose ma question sous une autre forme. j'ai implémenté une application (Winform), je la considère comme client c'est ce client qui a la logique d
Client FTP [ par DisqueDur62 ]
Bonjour, je vous sollicite pour un problème que je rencontre avec la gestion de l'objet "FtpWebRequest" . Je voudrai savoir comment on utilise le "Ke
si un item est sélectionné dans une listbox [ par thibaultlavoisey ]
bonjour, je travaille actuellement sur un projet Application Windows Forms, qui à pour but de permettre de visualiser le texte que l'on a écrit dans
Controle d'erreur [ par abbeille ]
Bonjour a vous tous !! j'utilise une fonction de controle dans ma table registre , si je saisie un n°bus et date , qui est déja dans la table, il me
Livres en rapport
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|