¿Cómo evitar que otros subprocesos interrumpan la ejecución de la función? ¿Eso es para garantizar la atomicidad del cuerpo de ejecución de la función?
1. Inicialice una estructura de segmento de código clave.
VOID InitializeCriticalSection(PCRITICAL_SECTION pcs);
2. Un hilo ingresa a la sección de código crítico.
VOID EnterCriticalSection(PCRITICAL_SECTION pcs);
BOOL TryEnterCriticalSection(PCRITICAL_SECTION pcs);
3.
4. El hilo abandona la sección de código crítico.
VOID LeaveCriticalSection(PCRITICAL_SECTION pcs);
5. Eliminar la sección del código clave.
VOID EliminarCriticalSection(PCRITICAL_SECTION piezas);