Tecnología

Inicio

Cómo hacer un subproceso de trabajo MFC

Los hilos son los objetos que hacen posible la multitarea. Hilos, cada uno correspondiente a un "intervalo de tiempo" o estado separado del programa en ejecución, crean la ilusión de que varios usuarios pueden compartir una aplicación de servidor. La biblioteca de clases Microsoft Foundation encapsula los hilos a través de la clase CWinThread, que apoya a las discusiones de los usuarios y de los trabajadores que se ejecutan en segundo plano. En unos pocos pasos, se puede hacer un programa sencillo que utiliza un subproceso de trabajo.

Instrucciones

1 Inicie Microsoft Visual Studio. Crear un proyecto MFC basada en cuadros de diálogo haciendo clic en "Archivo" en el menú superior y luego "Nuevo". Después de hacer clic en la pestaña "Proyectos", seleccione "Asistente para aplicaciones de MFC (exe)" y tipo "WThread" en el "Nombre del proyecto:" cuadro de edición. Haga clic en Aceptar." En la siguiente pantalla del asistente, seleccione "Diálogo basa", a continuación, haga clic en "Finalizar" y "OK". El asistente genera un cuadro de diálogo por defecto y sus archivos de origen asociados.

2


Hacer una función que actuará como el subproceso de trabajo para este tutorial MFC. Abra el archivo WorkerThreadDlg.cpp mediante la ampliación de la carpeta "Fuentes" en el panel izquierdo y haga doble clic en el archivo. Copiar / pegar el siguiente código al final del archivo:

ThreadProcess anular (LPVOID param) {

CFile f;

f.Open ( "proof.txt", CFile :: modeCreate | CFile :: modeWrite);

CString str;

for (int i = 0; i <50; i ++) {

str.format ( "Num:% d", i);

f.write (str, str.GetLength ());

}

f.close ();

}

3


Activar el subproceso de trabajo (la función en el paso 2) en un evento. Para un evento, utilice el clic del botón "OK" del cuadro de diálogo por defecto. Volver al modo de diseño presionando Ctrl + F4. Seleccione el botón "OK" y haga doble clic en él. Pulse el botón "OK" cuando aparezca el cuadro "Agregar función miembro". Copiar y pegar el siguiente código dentro de las llaves de "CWorkerThreadDlg :: OnOK ()".

AfxBeginThread (ThreadProcess, NULL, THREAD_PRIORITY_TIME_CRITICAL
, 0, 0, NULL);

MessageBox ( "subproceso de trabajo Activado", NULL, NULL);

4

Compilar y ejecutar la aplicación. Al hacer clic en "Aceptar", aparecerá un cuadro de mensaje que indica que el subproceso de trabajo de fondo ha ejecutado. Ir al directorio del proyecto y ver el texto escrito en "proof.txt."

Consejos y advertencias

  • Puede comenzar las discusiones sin el "AfxBeginThread ()" función mediante la creación de un objeto derivado de CWinThread y llamar a la "CreateThread ()" función miembro.
  • Este artículo no demuestra la multitarea, ya que requeriría la creación de más de un objeto hilo.