Articles of async await

¿Cómo puedo afirmar que un método asíncrono de C # produce una excepción en una prueba unitaria?

Posible duplicado: ¿Cómo puedo probar un método asíncrono con NUnit y, finalmente, con otro marco? Lo que me gustaría saber es cómo puedo afirmar que un método asíncrono arroja una excepción en una prueba de unidad de C #. Soy capaz de escribir pruebas unitarias asíncronas con Microsoft.VisualStudio.TestTools.UnitTesting en Visual Studio 2012, pero no he […]

¿Puede el uso de async-await proporcionarle beneficios de rendimiento?

Cuando leo sobre async – await , el ejemplo de caso de uso es siempre uno en el que hay una interfaz de usuario que no desea congelar. O todos los libros / tutoriales de progtwigción son iguales o el locking de la interfaz de usuario es el único caso de async . await que […]

El método async de llamada para cargar datos en el constructor de viewmodel tiene una advertencia

Mi vista contiene un ListView que muestra algunos datos de Internet, creo un método asíncrono para cargar datos y llamo al método en el constructor de mi modelo de vista. Tiene un mensaje de advertencia que ahora uso la palabra clave await. ¿Alguna otra solución para cargar datos de forma asíncrona en el constructor?

TaskContinuationOptions.RunContinuationAsynchronously y Stack Dives

En esta publicación del blog , Stephan Toub describe una nueva característica que se incluirá en .NET 4.6 que agrega otro valor a las enumeraciones TaskCreationOptions y TaskContinuationOptions llamadas RunContinuationsAsynchronously . El explica: “Hablé sobre una ramificación de los métodos {Try} Set * de llamada en TaskCompletionSource, que cualquier continuación sincrónica fuera de TaskCompletionSource’s Task […]

Uso de async / await y devolución de la tarea de los métodos de la API web de ASP.NET

Tengo un método de biblioteca de clases portátil (PCL) como este: public async Task GetLineStatuses() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync()) { return response.GetResponseStream().ReadAllText(); } } Mi método ASP.NET Web Api se ve así: public async Task Get() { HttpResponseMessage response = new HttpResponseMessage(); string statuses = await service.GetStatuses(); response.Content […]

Una forma sencilla de calificar las solicitudes de HttpClient

Estoy usando el HTTPClient en System.Net.Http para hacer solicitudes contra una API. La API está limitada a 10 solicitudes por segundo. Mi código es más o menos así: List tasks = new List(); items..Select(i => tasks.Add(ProcessItem(i)); try { await Task.WhenAll(taskList.ToArray()); } catch (Exception ex) { } El método ProcessItem hace algunas cosas pero siempre llama […]

Winforms llamada al método asíncrono cuelga el progtwig

He estado trabajando alrededor de este problema por un tiempo, pero ahora me gustaría entender qué es lo que va mal. Tengo una aplicación bastante simple (es un plugin SVN turtoise para youtrack, pero puedo reproducir el problema con una aplicación de trivial winforms). Tengo un método asíncrono ResolveIssue public async Task ResolveIssue(Issue issue, int […]

¿Cómo ejecutar correctamente múltiples tareas asíncronas en paralelo?

Qué sucede si necesita ejecutar varias tareas de E / S asíncronas en paralelo pero debe asegurarse de que no se ejecuten más procesos de XI / O al mismo tiempo; y las tareas de procesamiento de E / S anteriores y posteriores no deberían tener dicha limitación. Aquí hay un escenario, digamos que hay […]

Lazy compartió recurso asíncrono – ¿Aclaración?

Vi este ejemplo al final del libro de Stephen. Se puede acceder a este código por más de un hilo. static int _simpleValue; static readonly Lazy<Task> MySharedAsyncInteger = new Lazy<Task>( async () => { await Task.Delay(TimeSpan.FromSeconds(2)).ConfigureAwait(false); return _simpleValue++; }); async Task GetSharedIntegerAsync() { int sharedValue = await MySharedAsyncInteger.Value; } No importa cuántas partes del código […]

Espera lista de tareas

Estoy tratando de hacer algo como esto: foreach (var o in ObjectList) { CalculateIfNeedToMakeTaskForO(o); if (yes) TaskList.Add(OTaskAsync()); } Ahora me gustaría esperar a que todas estas tareas se completen. Además de hacer foreach(var o in ObjectList) { Result.Add(“result for O is: “+await OTaskAsync()); } ¿Hay algo que pueda hacer? (mejor, más elegante, más “correcto”)