¿Puedo obtener un conteo de suspensiones de hilos en Windows CE, usando C o Visual C++, sin llamar a las funciones de reanudar o suspender? La única forma que veo de hacerlo es algo así como¿Cómo puedo saber si un hilo está suspendido en Windows CE
int Count = SuspendThread(ThreadHandle);
ResumeThread(ThreadHandle);
Esto tiene un par de problemas, en primer lugar, que prefiero no suspender el hilo, y en segundo lugar las funciones de suspensión puede fallar si el hilo se está ejecutando el código del kernel . Puedo evitar esto, pero creo que debería haber una solución más elegante. También podría revertirlo usando
int Count = ResumeThread(ThreadHandle);
SuspendThread(ThreadHandle);
Pero esto tiene problemas similares. ¿Algún buen método alternativo para obtener el conteo suspendido desde el mango?
Sí, esta es la única manera de hacerlo. – ctacke
Interesante respuesta. ¿Cuánto tiempo esperaría, sería suficiente 1 ms en todos los casos, o es probable que sea más lento? –
En realidad, creo que puede usar el tiempo de espera 0. WaitForSingleObject() probará el estado y lo devolverá inmediatamente. Solo está interesado en comprobar el valor de retorno en WAIT_OBJECT_0.Lo cual le diría que el estado del hilo está señalizado y, por lo tanto, no está suspendido. – ralphtheninja