Share via


API de grupo de subprocesos

La interfaz de programación de aplicaciones (API) del grupo de subprocesos usa un diseño basado en objetos. Cada uno de los objetos siguientes se representa mediante una estructura de datos en modo de usuario:

  • Un objeto pool es un conjunto de subprocesos de trabajo que se pueden usar para realizar el trabajo. Cada proceso puede crear varios grupos aislados con características diferentes según sea necesario. También hay un grupo predeterminado para cada proceso.
  • Un grupo de limpieza está asociado a un conjunto de objetos que generan devoluciones de llamada. Existen funciones para esperar y liberar todos los objetos que son miembros de cada grupo de limpieza. Esto impide que la aplicación realice un seguimiento de todos los objetos que ha creado.
  • Un objeto de trabajo se asigna a un grupo y, opcionalmente, a un grupo de limpieza. Se puede publicar, lo que hace que un subproceso de trabajo del grupo ejecute su devolución de llamada. Un objeto de trabajo puede tener varias publicaciones pendientes; cada genera una devolución de llamada. No se puede producir un error en la operación posterior debido a la falta de recursos.
  • Un objeto de temporizador controla la programación de devoluciones de llamada. Cada vez que expira un temporizador, su devolución de llamada se publica en su grupo de trabajo. No se puede producir un error al establecer un temporizador debido a la falta de recursos.
  • Un objeto wait hace que un subproceso de espera espere en un identificador esperable. Una vez satisfecho la espera o el período de tiempo de espera expira, el subproceso del camarero publica la devolución de llamada de los objetos de espera en el grupo de trabajo de la espera. No se puede producir un error al establecer una espera debido a la falta de recursos.
  • Un objeto de E/S asocia un identificador de archivo con el puerto de finalización de E/S para el grupo de subprocesos. Cuando se completa una operación de E/S asincrónica, un subproceso de trabajo recoge el estado de la operación y llama a la devolución de llamada del objeto de E/S.

En la tabla siguiente se describen las características de las API del grupo de subprocesos original y actual.

Característica Original API API actual
Sincrónico RegisterWaitForSingleObject
Anular el registroWaitEx
CloseThreadpoolWait
CreateThreadpoolWait
SetThreadpoolWait
WaitForThreadpoolWaitCallbacks
Work QueueUserWorkItem
CloseThreadpoolWork
CreateThreadpoolWork
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
WaitForThreadpoolWorkCallbacks
Temporizador CreateTimerQueue
CreateTimerQueueTimer
ChangeTimerQueueTimer
DeleteTimerQueueTimer
DeleteTimerQueueEx
CloseThreadpoolTimer
CreateThreadpoolTimer
IsThreadpoolTimerSet
SetThreadpoolTimer
WaitForThreadpoolTimerCallbacks
E/S BindIoCompletionCallback
CancelThreadpoolIo
CloseThreadpoolIo
CreateThreadpoolIo
StartThreadpoolIo
WaitForThreadpoolIoCallbacks
Grupo de limpieza CloseThreadpoolCleanupGroup
CloseThreadpoolCleanupGroupMembers
CreateThreadpoolCleanupGroup
grupo CloseThreadpool
CreateThreadpool
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum
Entorno de devolución de llamada DestroyThreadpoolEnvironment
InitializeThreadpoolEnvironment
SetThreadpoolCallbackCleanupGroup
SetThreadpoolCallbackLibrary
SetThreadpoolCallbackPool
SetThreadpoolCallbackPriority
SetThreadpoolCallbackRunsLong
Devolución de llamada CallbackMayRunLong
Limpieza de devolución de llamada DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns
ReleaseSemaphoreWhenCallbackReturns
SetEventWhenCallbackReturns

 

Grupos de subprocesos

Uso de las funciones del grupo de subprocesos