Articles of async await

prova / cattura i blocchi con async / await

Sto scavando nella funzionalità async / await del nodo 7 e continuo a inciampare in codice come questo async function main() { try { var quote = await getQuote(); console.log(quote); } catch(error) { console.error(error); } } Questa sembra essere l’unica possibilità di risolvere / rifiutare o restituire / lanciare con async / await, tuttavia, v8 […]

Qualcuno può spiegare async / attendere?

Sto iniziando a conoscere async / await in C # 5.0, e non lo capisco affatto. Non capisco come possa essere usato per il parallelismo. Ho provato il seguente programma di base: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] […]

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

In attesa sincrona di un’operazione asincrona, e perché Wait () blocca il programma qui

Prefazione : sto cercando una spiegazione, non solo una soluzione. Conosco già la soluzione. Nonostante abbia trascorso diversi giorni a studiare articoli MSDN riguardo al modello asincrono basato su attività (TAP), async e attendi, sono ancora un po ‘confuso su alcuni dei dettagli più fini. Sto scrivendo un logger per le app di Windows Store […]

Come utilizzare API e pattern asincroni non attendibili per il thread sicuro con l’API Web ASP.NET?

Questa domanda è stata triggersta da EF Data Context – Async / Await & Multithreading . Ho risposto a quello, ma non ho fornito alcuna soluzione definitiva. Il problema originale è che ci sono molte utili API .NET (come DbContext di Microsoft Entity Framework), che forniscono metodi asincroni progettati per essere utilizzati in await , […]

Fuoco e dimentica l’approccio

Relativo a questa risposta , Se voglio veramente “Fire and Forget” un metodo che restituisce un compito, e (per semplicità) supponiamo che non ci si aspetti che il metodo generi eccezioni. Posso usare il metodo di estensione elencato nella risposta: public static void Forget(this Task task) { } Usando questo approccio, se ci sono errori […]

Async / await vs BackgroundWorker

Nei giorni scorsi ho testato le nuove funzionalità di .net 4.5 e c # 5. Mi piacciono le sue nuove funzionalità asincrone / attese. In precedenza avevo usato BackgroundWorker per gestire processi più lunghi in background con l’interfaccia utente retriggers. La mia domanda è: dopo avere queste nuove funzionalità, quando dovrei usare async / await […]

Qual è l’equivalente async / await di un server ThreadPool?

Sto lavorando su un server TCP che assomiglia a questo utilizzando gli apis sincroni e il pool di thread: TcpListener listener; void Serve(){ while(true){ var client = listener.AcceptTcpClient(); ThreadPool.QueueUserWorkItem(this.HandleConnection, client); //Or alternatively new Thread(HandleConnection).Start(client) } } Supponendo che il mio objective sia di gestire il maggior numero ansible di connessioni simultanee con l’utilizzo delle risorse […]

Per quanto riguarda l’utilizzo di Task.Start (), Task.Run () e Task.Factory.StartNew ()

Ho appena visto 3 routine relative all’uso di TPL che fanno lo stesso lavoro; ecco il codice: public static void Main() { Thread.CurrentThread.Name = “Main”; // Create a task and supply a user delegate by using a lambda expression. Task taskA = new Task( () => Console.WriteLine(“Hello from taskA.”)); // Start the task. taskA.Start(); // […]

Come limitare la quantità di operazioni simultanee di I / O asincrono?

// let’s say there is a list of 1000+ URLs string[] urls = { “http://google.com”, “http://yahoo.com”, … }; // now let’s send HTTP requests to each of these URLs in parallel urls.AsParallel().ForAll(async (url) => { var client = new HttpClient(); var html = await client.GetStringAsync(url); }); Ecco il problema, inizia più di 1000 richieste web […]