Articles of async await

Qualsiasi differenza tra “attende Task.Run (); return; “e” return Task.Run () “?

C’è qualche differenza concettuale tra i seguenti due pezzi di codice: async Task TestAsync() { await Task.Run(() => DoSomeWork()); } e Task TestAsync() { return Task.Run(() => DoSomeWork()); } Anche il codice generato differisce? EDIT: per evitare confusione con Task.Run , un caso simile: async Task TestAsync() { await Task.Delay(1000); } e Task TestAsync() { […]

Come chiamare il metodo asincrono dal metodo sincrono in C #?

Ho un metodo public async void Foo() che voglio chiamare dal metodo sincrono. Finora tutto ciò che ho visto dalla documentazione MSDN chiama i metodi asincroni tramite metodi asincroni, ma il mio intero programma non è costruito con metodi asincroni. È ansible? Ecco un esempio di chiamata di questi metodi da un metodo asincrono: http://msdn.microsoft.com/en-us/library/hh300224(v=vs.110).aspx […]

Qual è lo scopo di “return await” in C #?

C’è qualche scenario in cui il metodo di scrittura come questo: public async Task DoSomethingAsync() { // Some synchronous code might or might not be here… // return await DoAnotherThingAsync(); } Invece di questo: public Task DoSomethingAsync() { // Some synchronous code might or might not be here… // return DoAnotherThingAsync(); } avrebbe un senso? […]

Attendere vs Task.Wait – Deadlock?

Non capisco la differenza tra Task.Wait e await . Ho qualcosa di simile alle seguenti funzioni in un servizio WebAPI di ASP.NET: public class TestController : ApiController { public static async Task Foo() { await Task.Delay(1).ConfigureAwait(false); return “”; } public async static Task Bar() { return await Foo(); } public async static Task Ros() { […]

Un esempio asincrono / atteso che causa un deadlock

Mi sono imbattuto in alcune best practice per la programmazione asincrona usando le parole chiave asincrone / attese di c # (sono nuovo nel c # 5.0). Uno dei consigli dati è stato il seguente: Stabilità: conosci i tuoi contesti di sincronizzazione … Alcuni contesti di sincronizzazione sono non rientranti e single-threaded. Ciò significa che […]

Come dovrei eseguire un task asincrono metodo in modo sincrono?

Sto imparando async / await, e mi sono imbattuto in una situazione in cui ho bisogno di chiamare un metodo asincrono in modo sincrono. Come lo posso fare? Metodo asincrono: public async Task GetCustomers() { return await Service.GetCustomersAsync(); } Utilizzo normale: public async void GetCustomers() { customerList = await GetCustomers(); } Ho provato a utilizzare […]

Usando async / attendi con un ciclo forEach

Ci sono problemi con l’utilizzo async/await in un ciclo forEach ? Sto provando a scorrere una serie di file e await il contenuto di ciascun file. import fs from ‘fs-promise’ async function printFiles () { const files = await getFilePaths() // Assume this works fine files.forEach(async (file) => { const contents = await fs.readFile(file, ‘utf8’) […]