Articles of c # 5.0

async – stai sul thread corrente?

Ho letto l’ articolo di Eric Lippert su async e sulle confusioni che la gente aveva con parole chiave async . Egli ha detto : it ( async ) significa “questo metodo contiene il stream di controllo che implica l’attesa di operazioni asincrone e verrà quindi riscritto dal compilatore nello stile di passaggio continuo per […]

Implementazione asincrona di IValueConverter

Se un metodo asincrono che voglio innescare all’interno di un IValueConverter. Esiste un attesa migliore, quindi forzare la sincronizzazione in modo definitivo chiamando la proprietà del risultato? public async Task Convert(object value, Type targetType, object parameter, string language) { StorageFile file = value as StorageFile; if (file != null) { var image = ImageEx.ImageFromFile(file).Result; return […]

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