Articles of asynchronous

Detección de eventos de inserción / eliminación de USB en Windows usando C ++

Estoy escribiendo una extensión para una aplicación existente que necesita manejar eventos de inserción / eliminación de USB. Conozco el VID / PID del dispositivo de interés. Sin embargo, no tengo acceso al identificador de ventana, así que no sé si RegisterDeviceNotification será de mucha utilidad, a menos que haya una forma de obtener el […]

Llamada asincrónica con espera en HttpClient nunca regresa

Tengo una llamada que estoy haciendo desde dentro de una aplicación de metro C# basada en xaml en el CP Win8; esta llamada simplemente golpea un servicio web y devuelve datos JSON. HttpMessageHandler handler = new HttpClientHandler(); HttpClient httpClient = new HttpClient(handler); httpClient.BaseAddress = new Uri(“http://192.168.1.101/api/”); var result = await httpClient.GetStreamAsync(“weeklyplan”); DataContractJsonSerializer ser = new […]

¿Cómo cede y espera implementar el flujo de control en .NET?

Como entiendo la palabra clave yield , si se usa desde dentro de un bloque iterador, devuelve flujo de control al código de llamada, y cuando se llama nuevamente al iterador, continúa donde lo dejó. Además, await no solo espera al destinatario, sino que devuelve el control a la persona que llama, solo para continuar […]

¿Por qué existe la palabra clave async?

Al navegar por el canal 9 videos msdn, encontré el siguiente comentario sin respuesta y esperaba que alguien pudiera explicarlo. No entiendo el objective de la palabra clave asincrónica. ¿Por qué no simplemente permitir la palabra clave await en cualquier momento en que el método devuelva la tarea, al igual que los iteradores pueden generar […]

¿Un patrón para pausar / reanudar una tarea asíncrona?

Tengo una tarea continua mayoritariamente vinculada a IO (un corrector ortográfico de fondo que habla con un servidor de corrección ortográfica). A veces, esta tarea debe suspenderse y reanudarse más tarde, según la actividad del usuario. Mientras que suspender / reanudar es esencialmente lo que hace async/await , he encontrado poca información sobre cómo implementar […]

¿Cuál es la forma correcta de cancelar una operación asincrónica que no acepta un CancelToken?

¿Cuál es la forma correcta de cancelar lo siguiente? var tcpListener = new TcpListener(connection); tcpListener.Start(); var client = await tcpListener.AcceptTcpClientAsync(); Simplemente llamando a tcpListener.Stop() parece dar como resultado una ObjectDisposedException y el método AcceptTcpClientAsync no acepta una estructura CancellationToken . ¿Me estoy perdiendo algo obvio?

¿Cómo cancelar una operación de base de datos de larga duración?

Actualmente trabaja con Oracle, pero también necesitará una solución para MS SQL. Tengo una GUI que permite a los usuarios generar SQL que se ejecutará en la base de datos. Esto puede llevar mucho tiempo, según la búsqueda que generen. Quiero que la GUI / aplicación responda durante esta búsqueda y quiero que el usuario […]

Un patrón para auto-cancelar y reiniciar la tarea

¿Existe un patrón establecido recomendado para tareas de cancelación automática y reinicio? Por ejemplo, estoy trabajando en la API para el corrector ortográfico de fondo. La sesión de revisión ortográfica se envuelve como Task . Cada sesión nueva debe cancelar la anterior y esperar su finalización (para volver a utilizar correctamente los recursos como el […]

async espera a regresar Tarea

¿Puede alguien explicar qué significa esto para un método sincrónico? Si trato de cambiar el método para async entonces VS se queja de ello. Esto funciona: public Task MethodName() { return Task.FromResult(null); } Esto no funciona: public async Task MethodName() { return Task.FromResult(null); } Así que, básicamente, me gustaría saber qué significa exactamente esto: Task.FromResult(null);

¿Es async / await adecuado para métodos vinculados tanto con IO como con CPU?

La documentación de MSDN parece indicar que async y await son adecuados para tareas vinculadas a IO, mientras que Task.Run debe usarse para tareas vinculadas a CPU. Estoy trabajando en una aplicación que realiza solicitudes HTTP para recuperar documentos HTML, que luego analiza. Tengo un método que se ve así: public async Task LoadPage(Uri address) […]