Pregunta

Estoy trabajando en un proyecto MFC donde necesito un circuito separado que se ejecutará continuamente o una vez cada pocos segundos, y cada vez que puede o no puede que tenga que ejecutar un diálogo para conseguir un poco de entrada del usuario. Yo estaba pensando en usar AfxBeginThread, pero por lo que he leído sobre él, que en realidad no trabajo con un bucle continuo.

¿Fue útil?

Solución

No practico. No se puede simplemente copiar los cuadros de diálogo fuera de subprocesos de trabajo. Ellos sólo pueden iniciarse en el hilo principal, porque necesitan el suministro de mensajes con el fin de funcionar.

Si lo que quieres es una señal de algún tipo que dispara cada pocos segundos, a continuación, lo que quiere es un temporizador . Ajustar el temporizador para el período del temporizador que desee y, cuando el hilo principal procesa el mensaje WM_TIMER desea, puede aparecer un cuadro de diálogo y hacer su cosa.

Si usted quiere que su subproceso de trabajo para hacer un trabajo, que pueden o no incluir pedir al usuario la información, entonces usted tendrá que buscar a tener su uso hilo PostMessage () para enviar un mensaje al hilo principal, proceso que el mensaje que int hilo principal de preguntar al usuario para los datos, y luego el envío de una señal posterior al subproceso de trabajo con los datos de entrada. Una forma de lograr el último bit es llamando QueueUserAPC () desde el hilo principal con la manija del subproceso de trabajo y un puntero a una función que somethething con los datos introducidos recientemente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top