Articles of c # 5.0

chiama il metodo asincrono senza attendere # 2

Ho un metodo asincrono: public async Task ValidateRequestAsync(string userName, string password) { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); string stringResponse = await response.Content.ReadAsStringAsync(); return bool.Parse(stringResponse); } } Chiamo questo metodo in questo modo: bool isValid = await ValidateRequestAsync(“user1”, “pass1”); Posso chiamare lo stesso metodo da un metodo sincrono, senza […]

In che modo attendere il lavoro asincrono in C #

Sto cercando di capire come attendere il lavoro asincrono in C # e una cosa mi confonde molto. Comprendo che qualsiasi metodo che utilizza la parola chiave await deve essere contrassegnato con async. La mia comprensione è che quando viene colpita una riga con la parola chiave await, il codice sottostante non viene eseguito. Un’operazione […]

Il modo migliore per convertire il metodo async basato su callback in attività attendibili

Quale sarebbe il modo migliore per convertire / avvolgere un metodo asincrono “classico” che utilizza un callback a qualcosa che restituisce un’attività (attendibile)? Ad esempio, dato il seguente metodo: public void GetStringFromUrl(string url, Action onCompleted); L’unico modo che conosco per avvolgere questo in un metodo che restituisce un compito è: public Task GetStringFromUrl(string url) { […]

In che modo Task diventa un int?

Abbiamo questo metodo. async Task AccessTheWebAsync() { HttpClient client = new HttpClient(); Task getStringTask = client.GetStringAsync(“http://msdn.microsoft.com”); // You can do work here that doesn’t rely on the string from GetStringAsync. DoIndependentWork(); string urlContents = await getStringTask; //The thing is that this returns an int to a method that has a return type of Task return […]

Gestione asincrona delle eccezioni con vuoto

Sto usando Async CTP per scrivere un’app di console pesante IO. Ma sto avendo problemi con le eccezioni. public static void Main() { while (true) { try{ myobj.DoSomething(null); } catch(Exception){} Console.Write(“done”); //… } } //… public async void DoSomething(string p) { if (p==null) throw new InvalidOperationException(); else await SomeAsyncMethod(); } E succede il seguente: “done” […]

Come posso utilizzare le parole chiave asincrone in un progetto targeting.net 4.0

Vorrei usare le parole chiave asincrone in un progetto che è stato creato in .net 4.0. Se vado sul sito web nuget.org e cerco “async”, ho molti risultati, ma principalmente ottengo questo: Visual Studio Async CTP (versione 3, non ufficiale) 0.3.0 AsyncAwaitCTP 1.0.0 Quali sono le differenze tra loro?

Come si crea un metodo asincrono in C #?

Ogni post del blog che ho letto ti dice come consumare un metodo asincrono in C #, ma per qualche strana ragione non spiega mai come build i tuoi propri metodi asincroni per consumare. Quindi ho questo codice adesso che consuma il mio metodo: private async void button1_Click(object sender, EventArgs e) { var now = […]

Utilizzare async senza attendere

Mi piacerebbe fare una funzione asincrona, quindi aggiungo semplicemente async come questo: public async static void something(){ } Puoi vedere che il suo tipo di ritorno è void . Voglio solo che questa funzione venga chiamata in modo asincrono senza bloccare, poiché return è void quindi non è necessaria alcuna await . Ma Visual Studio […]

L’uso di async / await crea un nuovo thread?

Sono nuovo di TPL e mi chiedo: in che modo il supporto di programmazione asincrono che è nuovo a C # 5.0 (tramite il nuovo async e await parole chiave) riguarda la creazione di thread? Nello specifico, l’uso di async/await crea un nuovo thread ogni volta che vengono utilizzati? E se ci sono molti metodi […]

Async / Wait è adatto per i metodi che sono collegati sia all’IO che alla CPU?

La documentazione MSDN sembra indicare che async e await sono adatti per le attività legate Task.Run mentre Task.Run deve essere utilizzato per le attività associate alla CPU. Sto lavorando su un’applicazione che esegue richieste HTTP per recuperare documenti HTML, che poi analizza. Ho un metodo che assomiglia a questo: public async Task LoadPage(Uri address) { […]