Aparentemente, GetThreadId es una API de Vista. ¿Cómo puedo obtener la identificación de un hilo en los sistemas previos?GetThreadId en sistemas anteriores a la vista?
Respuesta
hay algunas opciones:
- Cuando se llama a CreateThread, se obtiene el mango hacia atrás.
- Puede llamar al GetCurrentThreadId para obtener la ID del hilo actual.
- Puede usar Thread32First/Thread32Next para enumerar los hilos.
Si de alguna manera puede hacer que el hilo en cuestión llame al GetCurrentThreadId y lo almacene en alguna parte, podría leer el resultado.
Esto funcionó mejor para mí, simplemente llamando a crear y almacenarlo con threadhandle! Gracias –
Si el hilo en cuestión entra frecuentemente en estado de espera alertable, puede enviarle un APC con QueueUserAPC; el controlador de APC puede llamar al GetCurrentThreadId y comunicar el resultado a la persona que llama utilizando el método que desee.
También puede hacerlo con las funciones NT no documentadas. El uso de NtQueryInformationThread() en la clase ThreadBasicInformation le dará la identificación del hilo en el returned structure. Un ejemplo se puede encontrar en el wine source. Sin embargo, no estoy seguro de en qué versiones de Windows está disponible: tenga en cuenta que estas funciones no documentadas pueden cambiar en cualquier momento, por lo que es mejor probarlas en las versiones anteriores de las ventanas que le interesan, y simplemente use GetThreadId() donde está disponible.
Tenga en cuenta que estas funciones no documentadas solo pueden ser accedidas por LoadLibrary() y GetProcAddress() en NTDLL; no tienen una biblioteca de importación According to MSDN, las declaraciones para las estructuras de datos se pueden encontrar en Winternl.h
, pero si no, simplemente defínelas basándose en los enlaces ntinternals anteriores.
Quien esté interesado aquí es cómo se puede llamar a 'NtQueryInformationThread': http://www.snip2code.com/Snippet/85443/GetProcessIdOfThread()-on-Windows-XP – c00000fd
- 1. Ejecución de código en sistemas integrados
- 2. Robocopy mueve los archivos anteriores a
- 3. Usar strtotime para fechas anteriores a 1970
- 4. MySQL: Trabajando con fechas anteriores a 1970
- 5. Agregar navigationcontroller a la vista de detalles en vista dividida
- 6. Buscar archivos anteriores a X y contarlos
- 7. Introducción a los sistemas de álgebra computarizada?
- 8. reCAPTCHA frente a otros sistemas de captcha
- 9. Cómo eliminar archivos anteriores a X horas
- 10. Eliminar problemas anteriores en Xcode
- 11. Segmentación de memoria en sistemas operativos modernos
- 12. Idéntica construcción en diferentes sistemas
- 13. Accediendo a la vista en awakeFromNib?
- 14. ¿Cómo puedo trabajar con fechas anteriores a 1900 en PHP?
- 15. CGPoint relativo a la vista
- 16. Búsqueda de directorios anteriores a N días en HDFS
- 17. Continuar con la información sobre cómputos anteriores
- 18. Programación de sistemas en Haskell?
- 19. Mover archivos anteriores a 31 días a otra unidad
- 20. La experiencia con los sistemas de facturación
- 21. ¿Podemos actualizar los datos en la vista
- 22. CQRS con sistemas heredados
- 23. Vista() frente a Vista parcial()
- 24. Mejorando sistemas realmente malos
- 25. Usa la fuente Roboto para dispositivos anteriores
- 26. Sistemas distribuidos, ¿mejor marco?
- 27. ¿Reutilizar actividades anteriores?
- 28. ¿Cómo presionar una vista, regresar y volver a la vista?
- 29. Llamando a la función vista desde otra vista - Backbone
- 30. registro de errores en la velocidad en los sistemas Linux
en el caso de enumeración, ¿hay alguna manera de determinar cuál de los hilos enumerados corresponde a un MANIPULADOR que tiene? – bdonlan
Pasa tu identificador de proceso actual a CreateToolhelp32Snapshot con el indicador TH32CS_SNAPMODULE. Esto solo enumerará los hilos en su proceso. –
Pero no te dejará decir la diferencia entre hilos _within_ tu módulo, ¿o sí? – bdonlan