2011-10-03 14 views
7

Especialmente el próximo Windows 8 (con Metro) requerirá que cualquier IO se programe de forma asíncrona. En C# /. Net parece haber await especial y tales construcciones para eso y la API de JavaScript tendrá su propio mecanismo para que funcione.¿Cuál es la mejor API para combinar C + 11 asincrónico/futuros con IO asíncrono de Windows?

¿Cuál será el C++ 11 -integración para eso? ¿Es un ejemplo conciso (por ejemplo, leer una imagen de un archivo para visualizar?) Para Windows moderno (o próximo)? Si es usando las características de C++ 11, ¿esperaría que esté involucrado async o future?

+0

asíncrono y/o futura probable que no estará involucrado. Las cosas asincrónicas de Windows 8 están integradas con PPL y la programación basada en tareas y el bloqueo cooperativo. asincrónico y futuro está basado en subprocesos y bloqueo de subprocesos. – ronag

+0

Oh sí, de PPL, he escuchado, al menos. – towi

+0

@Pavel No veo muy bien cómo? El C++ 11 std :: future no tiene un set_wait_callback que permita anular la implementación de bloqueo con un bloque cooperativo. La única forma de componer std: future con programadores basados ​​en tareas es sufrir la sobrecarga de la función Concurrency :: Oversubscribe (true) del planificador ConcRT. ¿Qué me estoy perdiendo? ¿Y con WinRT un std :: future simplemente bloquearía el hilo ganador? No es así como funciona WinRT, desde mi punto de vista espera un bloqueo cooperativo. – ronag

Respuesta

1

Windows 8 async probablemente se realice a través de PPL. Puede leer más sobre eso here.

Desde mi entendimiento, Windows 8 y PPL usan programación basada en tareas y bloqueo cooperativo. Mientras que std :: async y std :: future usan programación basada en hilos y bloqueo preventivo. Por lo tanto, no son compatibles.

+1

'std :: future' me parece una programación basada en tareas. –

+1

Bueno, podría verse así. Pero todas sus funciones de bloqueo no son cooperativas, lo que creo que lo hace un mal ajuste para los programadores basados ​​en tareas. – ronag

Cuestiones relacionadas