Red de conocimiento informático - Conocimiento informático - ¿Puede el temporizador implementar una solución multiproceso?

¿Puede el temporizador implementar una solución multiproceso?

¿Pueden los temporizadores lograr subprocesos múltiples?

Se deben utilizar temporizadores en el programa, pero la interfaz principal se atascará al procesar datos.

------Solución---------------------------------- -- ------------------------ La tecnología de temporizador SetTimer es una tecnología de interrupción.

Sincronización por hardware. Luego deje el mensaje WM_TIME y llame a la devolución de llamada. El mensaje enviado todavía proviene del hilo principal.

Conclusión: Cuando la cantidad de datos es pequeña, debido al mejor rendimiento de las computadoras actuales, el efecto no es diferente del multiproceso.

Pero al procesar más datos, no funcionará después de mucho tiempo. Todavía bloquea la interfaz principal.

------Solución---------------------------------- -- ------------------------ Cree un subproceso múltiple específicamente para procesar datos. La función del temporizador solo necesita agregar un indicador de procesamiento. Este indicador de procesamiento es un. variable global del proyecto (no es una variable global de clase), específicamente haga esto:

Al comienzo del archivo CPP:

BOOL m_Ok //El hilo procesa datos cuando etc.TURE; es igual a FALSE y deja de procesar datos

Función de temporizador: m_Ok = TRUE Función de hilo: while (1){if (m_Ok){ Procesar datos m_Ok=FALSE;}}- ----- Solución -------- ------------------------------------------ ------ En términos de interfaz, es más problemático, pero el procesamiento de datos está bien.

Si no está volviendo a dibujar la interfaz, sino simplemente procesando los datos, puede abrir un hilo en el que puede usar Sleep o WaitObject para disfrutar de los datos y bloquearlos, pero el tiempo no es suficiente. permitido.