Articles of c # 5.0

Perché questa azione asincrona si blocca?

Ho un’applicazione multi-livello .Net 4.5 che chiama un metodo usando il nuovo async C # e await parole chiave che si bloccano e non vedo perché. In fondo ho un metodo asincrono che estende la nostra utilità di database OurDBConn (fondamentalmente un wrapper per gli oggetti DBConnection e DBCommand sottostanti): public static async Task ExecuteAsync(this […]

Qual è la nuova funzionalità di attesa C #?

Qualcuno può spiegare cosa fa la funzione Attesa?

Devi mettere Task.Run in un metodo per renderlo asincrono?

Sto cercando di capire l’attesa asincrona nella forma più semplice. Voglio creare un metodo molto semplice che aggiunge due numeri per questo esempio, concesso, non è affatto un tempo di elaborazione, è solo una questione di formulazione di un esempio qui. Esempio 1 private async Task DoWork1Async() { int result = 1 + 2; } […]

Chiusura catturata (variabile loop) in C # 5.0

Funziona bene (significa come previsto) in C # 5.0: var actions = new List(); foreach (var i in Enumerable.Range(0, 10)) { actions.Add(() => Console.WriteLine(i)); } foreach (var act in actions) act(); Stampa da 0 a 9. Ma questo mostra 10 per 10 volte: var actions = new List(); for (var i = 0; i Console.WriteLine(i)); […]

L’uso delle variabili di foreach è stato modificato in C # 5?

In questa risposta https://stackoverflow.com/a/8649429/1497 Eric Lippert dice che “FYI è molto probabile che risolviamo questo problema nella prossima versione di C #, questo è un punto critico per gli sviluppatori” riguardo a come foreach loop usa la variabile. Nella prossima versione ogni volta che si esegue il ciclo “foreach” genereremo una nuova variabile di ciclo […]

Esiste un equivalente async di Process.Start?

Come suggerisce il titolo, esiste un equivalente a Process.Start (consente di eseguire un’altra applicazione o un file batch) che posso attendere? Sto giocando con una piccola app per console e questo mi è sembrato il posto perfetto per usare async e attendere ma non trovo documentazione per questo scenario. Quello che sto pensando è qualcosa […]

asincrona all’app console in C #?

Ho questo semplice codice: public static async Task SumTwoOperationsAsync() { var firstTask = GetOperationOneAsync(); var secondTask = GetOperationTwoAsync(); return await firstTask + await secondTask; } private async Task GetOperationOneAsync() { await Task.Delay(500); // Just to simulate an operation taking time return 10; } private async Task GetOperationTwoAsync() { await Task.Delay(100); // Just to simulate an […]

Usando async / attendi per più attività

Sto usando un client API che è completamente asincrono, cioè ogni operazione restituisce Task o Task , ad esempio: static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.DeletePost(siteId, postId); // call API client Console.WriteLine(“Deleted post {0}.”, siteId); } Utilizzando gli operatori asincroni / attendi C # 5, qual è il modo corretto […]

Uso async-await su .net 4

Attualmente sto iniziando a creare un’applicazione che trarrebbe profitto dalla funzione asincrona del C # 5. Ma non sono sicuro di quale versione di VS e del runtime async utilizzare. Guardando i grafici di popolarità del sistema operativo, avrò bisogno di supportare Windows XP per altri tre anni circa. Sembra che .net 4.5 venga eseguito […]

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 […]