in

c ++ – std :: el hilo no sale

apple touch icon@2

Tengo un código que actúa como una especie de estado de CPU anti inactivo. En la computadora portátil, se adjunta una cámara USB que captura imágenes, y si se permite que la CPU ingrese a estados inactivos, pierdo imágenes. Como no tengo derechos de administrador en el sistema en cuestión, en su lugar ejecuto un hilo que solo hace un estúpido ++ en un número entero, para mantener la CPU fuera de inactividad (y 1 núcleo al 100% de uso). El problema es que, en el sistema en cuestión, el código nunca sale. En mi sistema de desarrollo, el código saldrá bien, en el sistema donde debería ejecutarse la aplicación, funciona bien, pero nunca sale.

La salida que obtengo en la consola es

Setting bool to exit.
Reached join 1.
Reached join 2.

Eso es todo. La salida no sucede, por lo que el join() en el AntiIdle no regresa. ¿Por qué? En un sistema lo hace, en el otro no.

bool g_ExitProgram = false;

void AntiIdle()
{
    int32_t ch = 0;
    while (!g_ExitProgram)
    {
        ch++;
    }
}

main()
{
    std::thread antiIdleThread(AntiIdle);
    while (!g_ExitProgram)
    {
        if (_kbhit())
        {
            char ch = _getch();
            switch (ch)
            {
            case 27:
                printf("Setting bool to exit.n");
                g_ExitProgram = true; break;
            default:
                ;
            }
        }
    }

    printf("Reached join 1.n");
    displayThread.join();
    printf("Reached join 2.n");
    antiIdleThread.join();

    printf("Exiting code.n");
    return 0;
}

Editar: tenga en cuenta, displayThread tiene exactamente la misma condición de salida, solo con algunos sleeps () en el medio, esperando a que llegue la siguiente imagen.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

desktop icon

Compilador de Javascript en línea – Editor de Javascript en línea – IDE de Javascript en línea – Codificación de Javascript en línea – Practique Javascript en línea – Ejecute Javascript en línea – Compile Javascript en línea

xFzR7B3AMaPHobUuJfT6uK 1200 80

The Witcher 3 Places of Power – Velen – The Witcher 3 Places of Power – encuentra todos los puntos de habilidad que puedas con nuestras ubicaciones en el mapa de Lugares de poder