CEvent

Un objeto de clase CEvent representa un "evento" — un objeto de sincronización que permite que un subproceso notificar a otro que se ha producido un evento. Los eventos son útiles cuando un subproceso necesita saber cuándo realizar su tarea. Por ejemplo, un subproceso que copia los datos a un archivo de datos tendría que ser notificado cuando hay nuevos datos. Utilizando un objeto CEvent para notificar el subproceso de copia cuando nuevos datos están disponibles, el subproceso puede realizar su tarea tan pronto como sea posible.

CEvent objetos tienen dos tipos: manual y automático. Un manual CEvent objeto permanece en el estado establecido por SetEvent o ResetEvent hasta que se llama la otra función. Un objeto CEvent automático vuelve automáticamente a un Estado (no disponible) no señalizado después de libera al menos un subproceso.

Para utilizar un objeto CEvent , construir el objeto CEvent cuando es necesario. Especifique el nombre del evento que desea esperar, y que su aplicación debe inicialmente propio de TI. A continuación, puede acceder el evento cuando vuelva el constructor. Llamado SetEvent a la señal (hacer disponible) el objeto de evento y después llame desbloquear cuando haya terminado de acceder a los recursos controlados.

Un método alternativo para utilizar objetos CEvent es agregar una variable de tipo CEvent como un miembro de datos a la clase que desea controlar. Durante la construcción del objeto controlado, llamar al constructor del miembro de datos CEvent especificando si el evento es señalado inicialmente, el tipo de evento objeto te desea, el nombre del evento (si se utilizará a través de límites de proceso) y desea atributos de seguridad.

Para acceder a un recurso controlado por un objeto CEvent de esta manera, primero cree una variable de cualquier tipo de CSingleLock o escriba CMultiLock en función de miembro de acceso del recurso. A continuación, llamar a función miembro de bloqueo del objeto de bloqueo (por ejemplo, CMultiLock::Lock). En este punto, su hilo será obtener acceso al recurso, espere a que el recurso a liberarse y obtener acceso o esperar a que los recursos para ser lanzado y fuera de tiempo, no tener acceso al recurso. En cualquier caso, el recurso ha sido visitado de una manera segura para los subprocesos. Para liberar el recurso, llame a SetEvent para el objeto de evento de señal y, a continuación, utilice la función miembro de desbloqueo del objeto de bloqueo (por ejemplo, CMultiLock::Unlock) o permitir que caen fuera del ámbito el objeto de bloqueo.

Para obtener más información sobre el uso de objetos CEvent , consulte el artículo subprocesamiento múltiple: cómo usar las clases de sincronización en la Guía del programador de Visual C++.

# include lt;afxmt.h>

Miembros de la clase |nbsp; Clase base | Diagrama de jerarquía

Muestra  Ejemplo de MFC MTGDI

Index