Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El espacio de nombres Concurrency proporciona las clases y funciones que dan acceso al Concurrency Runtime, un marco de programación concurrente para C++. Para obtener más información, consulta Concurrency Runtime.
Sintaxis
namespace concurrency;
Miembros
Typedefs
| Nombre | Descripción |
|---|---|
runtime_object_identity |
Cada instancia del mensaje tiene una identidad que le acompaña mientras se clona y se pasa entre los componentes de mensajería. Esta no puede ser la dirección del objeto de mensaje. |
task_status |
Tipo que representa el estado terminal de una tarea. Los valores válidos son completed y canceled. |
TaskProc |
Una abstracción básica para una tarea, definida como void (__cdecl * TaskProc)(void *). Se llama a TaskProc para invocar al cuerpo de una tarea. |
TaskProc_t |
Una abstracción básica para una tarea, definida como void (__cdecl * TaskProc_t)(void *). Se llama a TaskProc para invocar el cuerpo de la tarea. |
Clases
| Nombre | Descripción |
|---|---|
| affinity_partitioner (clase) | La clase affinity_partitioner es similar a la clase static_partitioner, pero mejora la afinidad de caché eligiendo la asignación de subintervalos para subprocesos de trabajo. Puede mejorar considerablemente el rendimiento cuando un bucle se vuelve a ejecutar sobre el mismo conjunto de datos, y los datos caben en la caché. Observe que se debe utilizar el mismo objeto affinity_partitioner en iteraciones posteriores de un bucle paralelo que se ejecuta sobre un conjunto de datos determinado, para beneficiarse de la localidad de los datos. |
| Clase Agente | Una clase diseñada para usarse como una clase base para todos los agentes independientes. Se usa para ocultar el estado de otros agentes e interactuar con el paso de mensajes. |
| Clase auto_partitioner | La clase auto_partitioner representa el método predeterminado que parallel_for, parallel_for_each y parallel_transform utilizan para dividir el intervalo sobre el que iteran. Este método de partición emplea el robo de rango para el equilibrio de carga, así como la cancelación por iteración. |
| bad_target Clase | Esta clase describe una excepción que se produce cuando un bloque de mensajería recibe un puntero a un destino que no es válido para la operación que se realiza. |
| llamar Clase | Un bloque de mensajería call es un target_block con varios orígenes y ordenado, que invoca una función especificada al recibir un mensaje. |
| cancellation_token Class | La clase cancellation_token representa la capacidad para determinar si se ha solicitado la cancelación de alguna operación. Se puede asociar un determinado símbolo con un objeto task_group, structured_task_group o task para proporcionar una cancelación implícita. Este token también puede sondearse para la cancelación o puede hacer que se registre una devolución únicamente si se cancela el objeto cancellation_token_source asociado. |
| Clase de registro_de_token_de_cancelación | La clase cancellation_token_registration representa una notificación de devolución de llamada de un cancellation_token. Cuando el método register de un objeto cancellation_token se usa para recibir una notificación de cuándo se produce la cancelación, se devuelve un objeto cancellation_token_registration como identificador a la devolución de la llamada de modo que el llamador puede solicitar que ya no se realice una devolución de llamada específica a través del uso del método deregister. |
| cancellation_token_source (clase) | La clase cancellation_token_source representa la capacidad para cancelar una operación que se puede cancelar. |
| Clase Choice | Un bloque de mensajería choice es un bloque de varios orígenes y de destino único que representa una interacción del flujo de control con un conjunto de orígenes. El bloque selector esperará a cualquiera de múltiples orígenes para que produzca un mensaje y transmitirá el índice del origen que generó el mensaje. |
| Clase combinable | El objeto combinable<T> está diseñado para proporcionar copias privadas de datos de subprocesos, para realizar subcálculos locales de subprocesos sin bloqueos durante algoritmos paralelos. Al final de la operación paralela, los subcálculos privados de hilo pueden combinarse en un resultado final. Esta clase se puede utilizar en lugar de una variable compartida y puede dar lugar a una mejora en el rendimiento que, de lo contrario, daría lugar a mucha contención en esa variable compartida. |
| concurrent_priority_queue (clase) | La clase concurrent_priority_queue es un contenedor que permite que varios subprocesos inserten y extraigan elementos de forma simultánea. Los elementos se extraen en orden de prioridad donde la prioridad viene determinada por un functor proporcionado como un argumento de plantilla. |
| Clase concurrent_queue | La clase concurrent_queue es un contenedor de secuencia que permite el acceso a sus elementos en el orden de primero en entrar, primero en salir. Habilita un conjunto limitado de operaciones seguras para simultaneidad, como push y try_pop. |
| Clase concurrent_unordered_map | La clase concurrent_unordered_map es un contenedor seguro para simultaneidad que controla una secuencia de variación de longitud de elementos del tipo std::pair<const K, _Element_type>. La secuencia se representa de una manera que habilita la anexión segura para simultaneidad, el acceso a elementos, el acceso a iterador y las operaciones de recorrido de iterador. |
| Clase concurrent_unordered_multimap | La clase concurrent_unordered_multimap es un contenedor seguro para simultaneidad que controla una secuencia de elementos de longitud variable del tipo std::pair<const K, _Element_type>. La secuencia se representa de una manera que habilita la anexión segura para simultaneidad, el acceso a elementos, el acceso a iterador y las operaciones de recorrido de iterador. |
| concurrent_unordered_multiset Clase de C++ | La clase concurrent_unordered_multiset es un contenedor seguro para la concurrencia que controla una secuencia de longitud variable de elementos de tipo K. La secuencia se representa de una forma que permite operaciones de agregación, acceso a elementos, acceso de iterador y recorrido de iterador con seguridad de concurrencia. |
| Clase concurrent_unordered_set | La clase concurrent_unordered_set es un contenedor seguro para concurrencia que controla una secuencia de longitud variable de elementos de tipo K. La secuencia se representa de una forma que permite las operaciones de anexión, acceso a elementos, acceso de iterador y recorrido del iterador asegurando la concurrencia. |
| Clase concurrent_vector | La clase concurrent_vector es una clase de contenedor de secuencia que permite el acceso aleatorio a cualquier elemento. Habilita operaciones de anexión segura concurrente, acceso a elementos, acceso a iteradores y recorrido de iteradores. |
| Clase Contexto | Representa una abstracción para un contexto de ejecución. |
| context_self_unblock Clase | Esta clase describe una excepción que se produce cuando se llama al método Unblock de un objeto Context desde el mismo contexto. Esto indicaría que un contexto especificado ha intentado desbloquearse a sí mismo. |
| context_unblock_unbalanced Clase | Esta clase describe una excepción que se produce cuando se llama a los métodos Block y Unblock de un objeto Context que no están emparejados correctamente. |
| critical_section (clase) | Un mutex no reentrante que es explícitamente consciente del tiempo de ejecución de concurrencia. |
| CurrentScheduler (clase) | Representa una abstracción para el programador actual asociado al contexto de la llamada. |
| default_scheduler_exists Clase | Esta clase describe una excepción que se produce cuando se llama al método Scheduler::SetDefaultSchedulerPolicy cuando un programador predeterminado ya existe dentro del proceso. |
| event (clase) | Un evento de reinicio manual que es explícitamente consciente del runtime de simultaneidad. |
| improper_lock Clase | Esta clase describe una excepción que se produce cuando un bloqueo es adquirido de forma incorrecta. |
| improper_scheduler_attach Clase | Esta clase describe una excepción que se produce cuando se llama al método Attach en un objeto Scheduler que ya se ha adjuntado al contexto actual. |
| improper_scheduler_detach (clase) | Esta clase describe una excepción que se produce cuando se invoca el método CurrentScheduler::Detach sobre un contexto que no ha sido asociado a ningún planificador mediante el método Attach de un objeto Scheduler. |
| improper_scheduler_reference Class | Esta clase describe una excepción que se produce cuando se llama al método Reference en un objeto Scheduler que se está cerrando, desde un contexto que no forma parte de ese planificador. |
| invalid_link_target Clase | Esta clase describe una excepción que se produce cuando se llama al método link_target de un bloque de mensajería y el bloque de mensajería no se puede vincular al destino. Este puede ser el resultado de superar el número de vínculos que se permiten en el bloque de mensajería o de intentar vincular un destino específico al mismo origen dos veces. |
| invalid_multiple_scheduling Class | Esta clase describe una excepción que se produce cuando un objeto task_handle se programa varias veces mediante el método run de un objeto task_group o structured_task_group sin una llamada que se interponga a los métodos wait o run_and_wait. |
| operación_inválida clase | Esta clase describe una excepción lanzada cuando se realiza una operación no válida que no está descrita con más precisión por otro tipo de excepción lanzado por el Concurrency Runtime. |
| invalid_oversubscribe_operation (clase) | Esta clase describe una excepción cuando se llama al método Context::Oversubscribe con el parámetro _BeginOversubscription establecido en false sin realizar antes una llamada al método Context::Oversubscribe con el parámetro _BeginOversubscription establecido en true. |
| Clase invalid_scheduler_policy_key | Esta clase describe una excepción que se produce cuando una clave no válida o desconocida se pasa a un constructor de objeto SchedulerPolicy, o el método SetPolicyValue de un objeto SchedulerPolicy se pasa a una clave que se debe cambiar mediante otros medios como el método SetConcurrencyLimits. |
| Clase invalid_scheduler_policy_thread_specification | Esta clase describe una excepción que se produce cuando se realiza un intento para establecer los límites de simultaneidad de un objeto SchedulerPolicy, de tal forma que el valor de la clave MinConcurrency es menor que el valor de la clave MaxConcurrency. |
| invalid_scheduler_policy_value Clase | Esta clase describe una excepción que se produce cuando una clave de directiva de un objeto SchedulerPolicy se establece en un valor no válido para esa clave. |
| ISource (clase) | La clase ISource es la interfaz para todos los bloques de origen. Los bloques de origen propagan mensajes a los bloques ITarget. |
| ITarget (clase) | La clase ITarget es la interfaz para todos los bloques de destino. Los bloques de destino consumen mensajes ofrecidos por los bloques ISource. |
| Unirse a Clase | Un bloque de mensajería join es un bloque propagator_block de destino único y de varios orígenes ordenado, que combina los mensajes de tipo T de cada uno de sus orígenes. |
| Clase de ubicación | Una abstracción de una ubicación física en el hardware. |
| Clase mensaje | El sobre del mensaje básico que contiene la carga de datos que se pasa entre bloques de mensajería. |
| message_not_found Clase | Esta clase describe una excepción que se produce cuando un bloque de mensajería no puede encontrar un mensaje solicitado. |
| message_processor (clase) | La clase message_processor es la clase base abstracta del procesamiento de objetos message. No hay ninguna garantía en la clasificación de los mensajes. |
| Clase missing_wait | Esta clase describe una excepción que se produce cuando todavía existen tareas programadas para un objeto task_group o structured_task_group en el momento que el destructor de objeto se ejecuta. Nunca se producirá esta excepción si el destructor se alcanza debido al desenredo de pila como el resultado de una excepción. |
| Clase multi_link_registry | El objeto multi_link_registry es un network_link_registry que administra varios bloques de origen o varios bloques de destino. |
| Clase multitype_join | Un bloque de mensajería multitype_join es un bloque de mensajería de varios orígenes y único destino, que combina mensajes de diferentes tipos de cada uno de sus orígenes y ofrece una tupla de los mensajes combinados a sus destinos. |
| nested_scheduler_missing_detach Clase | Esta clase describe una excepción que se produce cuando el Tiempo de Ejecución de Concurrente detecta que omitió llamar al método CurrentScheduler::Detach en un contexto adjunto a un segundo planificador mediante el método Attach del objeto Scheduler. |
| network_link_registry (clase) | La clase base abstracta network_link_registry que administra los vínculos entre los bloques de origen y de destino. |
| operation_timed_out Clase | Esta clase describe una excepción que se produce cuando una operación ha agotado su tiempo de espera. |
| ordered_message_processor Clase | Un ordered_message_processor es un message_processor que permite a los bloques de mensaje procesar los mensajes en el orden que se recibieron. |
| Clase overwrite_buffer | Un bloque de mensajería overwrite_buffer es un bloque propagator_block de destino único, de varios orígenes y ordenado que es capaz de almacenar un único mensaje cada vez. Los nuevos mensajes sobrescriben los anteriores. |
| progress_reporter Clase | La clase de informe de progreso permite reportar notificaciones de progreso de un tipo específico. Cada objeto progress_reporter se vincula a una acción u operación asincrónica determinada. |
| propagator_block (clase) | La clase propagator_block es una clase base abstracta para los bloques de mensaje que son un bloque de origen y de destino. Combina la funcionalidad de las clases source_block y target_block. |
| reader_writer_lock Clase | Un bloqueo lector-escritor basado en cola con preferencia de escritor y con giro solo local. El bloqueo proporciona acceso primero en entrar, primero en salir (FIFO) a los escritores y priva a los lectores bajo una carga continua de escritores. |
| ScheduleGroup (clase) | Representa una abstracción para un grupo de programación. Los grupos de programación organizan un conjunto de trabajos relacionados que se benefician de programarse juntos ya sea temporalmente, mediante la ejecución de otra tarea en el mismo grupo antes de trasladarse a otro grupo, o espacialmente, mediante la ejecución de varios elementos del mismo grupo en el mismo nodo NUMA o socket físico. |
| Scheduler (clase) | Representa una abstracción para un programador del tiempo de ejecución de concurrencia. |
| Clase scheduler_not_attached | Esta clase describe una excepción que se produce cuando se realiza una operación que requiere que un gestor de tareas se adjunte al contexto actual y no lo hay. |
| scheduler_resource_allocation_error (clase) | Esta clase describe una excepción que se produce debido a un error al adquirir un recurso crítico en el runtime de simultaneidad. |
| scheduler_worker_creation_error (clase) | Esta clase describe una excepción lanzada debido a un error al crear un contexto de ejecución de trabajador en el tiempo de ejecución concurrente. |
| SchedulerPolicy Clase | La clase SchedulerPolicy contiene un conjunto de pares clave-valor, uno para cada elemento de directiva, que controla el comportamiento de una instancia del programador. |
| Clase simple_partitioner | La clase simple_partitioner representa una partición estática del intervalo sobre el que se itera mediante parallel_for. La clase Partitioner divide el intervalo en fragmentos de forma que cada fragmento tiene al menos el número de iteraciones especificadas por el tamaño del fragmento. |
| Clase single_assignment | Un bloque de mensajería single_assignment es un bloque propagator_block de destino único, de varios orígenes y ordenado capaz de almacenar un único message de una sola escritura. |
| Clase de registro_single_link | El objeto single_link_registry es un network_link_registry que administra un solo bloque de origen o bloque de destino. |
| source_block Clase | La clase source_block es una clase base abstracta solo para bloques de origen. La clase proporciona funcionalidad de administración de vínculo básico, así como comprobaciones de errores frecuentes. |
| Clase source_link_manager | El objeto source_link_manager gestiona los enlaces de red de los bloques de mensajería hacia los bloques ISource. |
| static_partitioner (clase) | La clase static_partitioner representa una partición estática del intervalo que se itera con parallel_for. El particionador divide el intervalo en tantos fragmentos como trabajadores hay disponibles para el planificador subyacente. |
| structured_task_group Clase | La clase structured_task_group representa una colección muy estructurada de trabajos paralelos. Puede poner en cola tareas individuales paralelas a structured_task_group mediante objetos task_handle, y esperar a que se completen, o cancelar el grupo de tareas antes de que haya finalizado su ejecución, que anulará cualquier tarea cuya ejecución no haya comenzado. |
| target_block (clase) | La clase target_block es una clase base abstracta que proporciona funcionalidad de administración de vínculo básica y comprueba errores solo para bloques de destino. |
| Clase task (Tiempo de ejecución de concurrencia) | La clase task de la biblioteca de patrones de procesamiento paralelo (PPL). Un objeto task representa el trabajo que se puede ejecutar de forma asincrónica y de forma simultánea con otras tareas y trabajos paralelos generados por los algoritmos paralelos en el runtime de simultaneidad. Genera un resultado de tipo _ResultType al finalizar correctamente. Las tareas de tipo task<void> no producen ningún resultado. Es posible esperar y cancelar una tarea de forma independiente al resto de tareas. También se puede componer con otras tareas mediante continuaciones (then), así como con patrones de unión (when_all) y elección (when_any). |
| task_canceled (clase) | Esta clase describe una excepción lanzada por la capa de tareas de PPL para obligar a que se cancele la tarea actual. También es lanzada por el método get() en la tarea, cuando se trata de una tarea cancelada. |
| task_completion_event Class | La clase task_completion_event permite retrasar la ejecución de una tarea hasta que se satisfaga una condición, o iniciar una tarea en respuesta a un evento externo. |
| task_continuation_context Clase | La clase task_continuation_context permite especificar dónde se desea que se ejecute una continuación. Solo es de utilidad utilizar esta clase desde una aplicación de UWP. Para las aplicaciones que no sean de Windows Runtime, el contexto de ejecución de la continuación de la tarea es determinado por el tiempo de ejecución, y no se puede configurar. |
| task_group Clase | La clase task_group representa una colección de trabajo paralelo que es posible esperar o cancelar. |
| task_handle clase | La clase task_handle representa un elemento de trabajo individual paralelo. Encapsula las instrucciones y los datos necesarios para ejecutar una parte del trabajo. |
| clase task_options (Tiempo de ejecución de concurrencia) | Representa las opciones permitidas para crear una tarea |
| timer (clase) | Un bloque de mensajería timer es un bloque source_block con destino único, capaz de enviar un mensaje a su destino cuando un período de tiempo especificado ha transcurrido o en intervalos concretos. |
| transformer (clase) | Un bloque de mensajería transformer es un bloque propagator_block de destino único, de varios orígenes y ordenado capaz de almacenar un número ilimitado de mensajes de un tipo diferente. |
| Clase unbounded_buffer | Un bloque de mensajería unbounded_buffer es un bloque propagator_block de destino único, de varios orígenes y ordenado capaz de almacenar un número ilimitado de mensajes. |
| unsupported_os Class | Esta clase describe una excepción que se produce cuando se usa un sistema operativo no compatible. |
Estructuras
| Nombre | Descripción |
|---|---|
| DispatchState (estructura) | La estructura DispatchState se usa para transferir el estado al método IExecutionContext::Dispatch. Describe las circunstancias bajo las que el método Dispatch se invoca en una interfaz IExecutionContext. |
| IExecutionContext (estructura) | Una interfaz a un contexto de ejecución que se puede ejecutar en un procesador virtual determinado y que puede cambiar de contexto de forma cooperativa. |
| IExecutionResource (estructura) | Una abstracción para un subproceso del hardware. |
| IResourceManager (estructura) | Una interfaz al Administrador de recursos del runtime de simultaneidad. Esta es la interfaz que usan los programadores para comunicarse con el Administrador de recursos. |
| IScheduler (estructura) | Una interfaz para una abstracción de un planificador de tareas. El Administrador de recursos del entorno de simultaneidad usa esta interfaz para comunicarse con programadores de trabajo. |
| Estructura ISchedulerProxy | La interfaz por la que los planificadores se comunican con el Resource Manager del Concurrency Runtime para negociar sobre la asignación de recursos. |
| IThreadProxy (estructura) | Una abstracción para un subproceso de ejecución. Dependiendo de la clave de directiva SchedulerType del programador que usted crea, el Administrador de recursos le concederá un proxy de hilo respaldado por un hilo regular de Win32 o por un hilo programable en modo de usuario (UMS). Los subprocesos UMS se admiten en sistemas operativos de 64 bits con Windows 7 o una versión posterior. |
| ITopologyExecutionResource (estructura) | Una interfaz a un recurso de ejecución definido por el Administrador de recursos. |
| Estructura ITopologyNode | Una interfaz a un nodo de topología definido por el Administrador de recursos. Un nodo contiene uno o varios recursos de ejecución. |
| Estructura IUMSCompletionList | Representa una lista de finalización UMS. Cuando se bloquea un subproceso UMS, el contexto de programación designado del programador se envía de forma que se puede tomar una decisión sobre qué programar en la raíz del procesador virtual subyacente mientras se bloquea el subproceso original. Cuando el subproceso original se desbloquea, el sistema operativo lo envía a la cola de la lista de tareas completadas, que es accesible a través de esta interfaz. El programador puede consultar la lista de finalización en el contexto de planificación designado o en cualquier otro lugar donde busca trabajo. |
| IUMSScheduler (estructura) | Una interfaz a una abstracción de un programador de trabajo que quiere que el Administrador de Recursos del Runtime de Concurrencia le proporcione subprocesos programables en modo de usuario (UMS). El Administrador de recursos usa esta interfaz para comunicarse con los programadores de subprocesos UMS. La interfaz IUMSScheduler hereda de la interfaz IScheduler . |
| Estructura IUMSThreadProxy | Una abstracción para un subproceso de ejecución. Si desea conceder subprocesos programables en modo usuario (UMS) al programador, establezca el valor para el elemento de directiva de programador SchedulerKind en UmsThreadDefault e implemente la interfaz IUMSScheduler. Los subprocesos UMS se admiten únicamente en sistemas operativos de 64 bits con Windows 7 o una versión posterior. |
| IUMSUnblockNotification (estructura) | Representa una notificación del Administrador de Recursos indicando que un proxy del subproceso que había bloqueado y desencadenado un retorno al contexto de programación designado del programador, se ha desbloqueado y está listo para ser programado. Esta interfaz no es válida una vez que el contexto de ejecución asociado del proxy de hilo, devuelto desde el método GetContext, se reprograma. |
| IVirtualProcessorRoot (estructura) | Una abstracción para un subproceso de hardware en el que un proxy del subproceso puede ejecutarse. |
| scheduler_interface (estructura) | Interfaz de Planificador |
| Estructura scheduler_ptr (Tiempo de ejecución de concurrencia) | Representa un puntero a un programador. Esta clase existe para permitir la especificación de una duración compartida mediante shared_ptr o simplemente permitir una referencia sin formato mediante un puntero básico. |
Enumeraciones
| Nombre | Descripción |
|---|---|
| agent_status | Los estados válidos para un agent. |
| Agents_EventType | Los tipos de eventos a los que se puede realiza un seguimiento utilizando la funcionalidad de seguimiento proporcionada por la Biblioteca de agentes. |
| ConcRT_EventType | Los tipos de eventos que se pueden seguir utilizando la funcionalidad de seguimiento proporcionada por el Runtime de Concurrency. |
| Concrt_TraceFlags | Marcas de seguimiento para los tipos de evento |
| CriticalRegionType | El tipo de región crítica dentro del que se encuentra un contexto. |
| DynamicProgressFeedbackType | La política DynamicProgressFeedback se utiliza para describir si los recursos para el planificador se volverán a equilibrar según la información estadística recopilada del planificador o si se basarán únicamente en los procesadores virtuales que entran y salen del estado de inactividad mediante las llamadas a los métodos Activate y Deactivate en la interfaz IVirtualProcessorRoot. Para más información sobre las directivas del programador disponibles, consulta PolicyElementKey. |
| join_type | El tipo de un bloque de mensajería join. |
| message_status | Las respuestas válidas para una oferta de un objeto message a un bloque. |
| PolicyElementKey | Claves de directiva que describen aspectos del comportamiento del planificador. Cada elemento de directiva se describe mediante un par clave-valor. Para más información sobre las directivas del programador y su impacto en los programadores, consulta Programador de tareas. |
| SchedulerType | Utilizado por la directiva SchedulerKind para describir el tipo de subprocesos que el planificador debería usar para contextos de ejecución básicos. Para más información sobre las directivas del programador disponibles, consulta PolicyElementKey. |
| TipoDeProtocoloDeProgramación | La directiva SchedulingProtocol se usa para describir qué algoritmo de programación será utilizado por el planificador. Para más información sobre las directivas del programador disponibles, consulta PolicyElementKey. |
| SwitchingProxyState | Se usa para denotar el estado en el que se encuentra un proxy del subproceso, cuando se ejecuta un cambio de contexto cooperativo en un proxy del subproceso diferente. |
| task_group_status | Describe el estado de ejecución de un objeto task_group o structured_task_group. Numerosos métodos que esperan a que las tareas programadas en un grupo de tareas se completen devuelven un valor de este tipo. |
| WinRTInitializationType | La política WinRTInitialization se utiliza para describir si y cómo se inicializará Windows Runtime en los subprocesos del planificador para una aplicación que se ejecuta en sistemas operativos con Windows 8 o versiones superiores. Para más información sobre las directivas del programador disponibles, consulta PolicyElementKey. |
Funciones
| Nombre | Descripción |
|---|---|
| Función Alloc | Asigna un bloque de memoria del tamaño especificado del Caching Suballocator del Concurrency Runtime. |
| asend (función) | Sobrecargado Una operación de envío asincrónica, que programa una tarea para propagar los datos al bloque de destino. |
| función cancel_current_task | Cancela la tarea que se está ejecutando actualmente. Se puede llamar a esta función desde el cuerpo de una tarea para anular la ejecución de la tarea y hacer que obtenga el estado canceled.No está admitido que llame a esta función si no está dentro del cuerpo de un objeto task. Esto dará lugar a un comportamiento indefinido como, por ejemplo, un bloqueo o falta de respuesta en la aplicación. |
| función create_async | Crea una construcción asincrónica de Windows Runtime basada en un objeto o función lambda que se ha proporcionado. El tipo devuelto de create_async es IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^ o IAsyncOperationWithProgress<TResult, TProgress>^ en función de la signatura de la expresión lambda pasada al método. |
| función create_task | Sobrecargado Crea un objeto tarea de PPL.
create_task se puede usar en cualquier lugar en el que se ha utilizado un constructor de tarea. Se proporciona principalmente por comodidad, porque permite el uso de la palabra clave auto cuando se crean tareas. |
| CreateResourceManager (función) | Devuelve una interfaz que representa la instancia singleton del Administrador de Recursos del Runtime de Simultaneidad. El Administrador de recursos es el responsable de asignar recursos a los programadores que desean cooperar entre sí. |
| La función DisableTracing | Desactiva la traza en el tiempo de ejecución de concurrencia. Esta función está obsoleta porque el rastreo de ETW no está registrado por defecto. |
| EnableTracing (función) | Habilita la traza en el tiempo de ejecución de concurrencia. Esta función está en desuso porque la traza de ETW ahora está habilitada de forma predeterminada. |
| Función Libre | Libera un bloque de memoria asignado previamente mediante el método Alloc al subasignador de almacenamiento en caché del runtime de simultaneidad. |
| Función get_ambient_scheduler (Concurrency Runtime) | |
| Función GetExecutionContextId | Devuelve un identificador único que se puede asignar a un contexto de ejecución que implementa la interfaz IExecutionContext. |
| Función GetOSVersion | Devuelve la versión del sistema operativo. |
| Función GetProcessorCount | Devuelve el número de subprocesos de hardware en el sistema subyacente. |
| Función GetProcessorNodeCount | Devuelve el número de nodos NUMA o paquetes de procesador en el sistema subyacente. |
| Función "GetSchedulerId" | Devuelve un identificador único que se puede asignar a un programador que implementa la interfaz IScheduler. |
| Función interruption_point | Crea un punto de interrupción para la cancelación. Si una cancelación está en curso en el contexto donde se llama a esta función, se producirá una excepción interna que anula la ejecución del trabajo paralelo que se está ejecutando actualmente. Si la cancelación no está en curso, la función no hace nada. |
| Función is_current_task_group_canceling | Devuelve una indicación de si el grupo de tareas que actualmente se está ejecutando en línea dentro del contexto actual se encuentra en proceso de una cancelación activa (o lo estará pronto). Tenga en cuenta que si no hay ningún grupo de tareas que se esté ejecutando actualmente en línea en el contexto actual, se devolverá false. |
| función make_choice | Sobrecargado Construye un bloque de mensajería choice a partir de un Scheduler opcional, un ScheduleGroup, y dos o más orígenes de entrada. |
| Función make_greedy_join | Sobrecargado Construye un bloque de mensajería greedy multitype_join a partir de un Scheduler opcional, o ScheduleGroup, y de dos o más fuentes de entrada. |
| función make_join | Sobrecargado Construye un bloque de mensajería non_greedy multitype_join a partir de un Scheduler opcional o ScheduleGroup junto con dos o más orígenes de entrada. |
| función make_task | Un método generador para crear un objeto task_handle. |
| Función parallel_buffered_sort | Sobrecargado Organiza los elementos en un intervalo especificado en un orden no descendente, o de acuerdo con un criterio de ordenación especificado por un predicado binario, en paralelo. Esta función es semánticamente similar a std::sort, ya que se trata de una ordenación basada en comparación, inestable, en su lugar, excepto que necesita O(n) de espacio adicional, y requiere una inicialización predeterminada para los elementos que se ordenan. |
| función parallel_for | Sobrecargado
parallel_for itera sobre un intervalo de índices y ejecuta una función proporcionada por el usuario en cada iteración, en paralelo. |
| función parallel_for_each | Sobrecargado
parallel_for_each aplica una función especificada para cada elemento dentro de un intervalo, en paralelo. Es semánticamente equivalente a la función for_each en el espacio de nombres std, salvo que la iteración sobre los elementos se realiza en paralelo, y el orden de iteración no está especificado. El argumento _Func debe admitir un operador de llamada de función del formulario operator()(T) donde el parámetro T es el tipo de elemento del contenedor que se recorre en iteración. |
| función parallel_invoke | Sobrecargado Ejecuta los objetos de función proporcionados como parámetros en paralelo y se bloquea hasta que han terminado de ejecutarse. Cada objeto de función puede ser una expresión lambda, un puntero a una función o cualquier otro objeto que admite el operador de llamada de función con la signatura void operator()(). |
| función parallel_radixsort | Sobrecargado Organiza los elementos en un intervalo especificado en un orden no descendente utilizando un algoritmo de ordenación de base. Esta es una función estable de ordenación que requiere una función de proyección que pueda proyectar elementos que se puedan ordenar en claves como enteros sin signo. Se requiere una inicialización predeterminada para que se ordenen los elementos. |
| función parallel_reduce | Sobrecargado Calcula la suma de todos los elementos en un intervalo especificado mediante el cálculo de sumas parciales sucesivas, o calcula el resultado de los resultados parciales sucesivos obtenidos de manera similar mediante el uso de una operación binaria determinada distinta de la suma, en paralelo.
parallel_reduce es semánticamente similar a std::accumulate, salvo que requiere que la operación binaria sea asociativa, y requiere un valor de identidad en lugar de un valor inicial. |
| Función parallel_sort | Sobrecargado Organiza los elementos en un intervalo especificado en un orden no descendente, o de acuerdo con un criterio de ordenación especificado por un predicado binario, en paralelo. Esta función es semánticamente similar a std::sort en cuanto a que es una ordenación basada en comparación, inestable y en su lugar. |
| función parallel_transform | Sobrecargado Aplica un objeto especificado de función a cada elemento de un intervalo de origen, o a un par de elementos de dos intervalos de origen, y copia los valores devueltos del objeto de función en un intervalo de destino, en paralelo. Esta función es semánticamente equivalente a std::transform. |
| Función receive | Sobrecargado Una implementación general de recepción que permite a un contexto esperar datos de exactamente un origen y filtrar los valores que se aceptan. |
| Función run_with_cancellation_token | Ejecuta un objeto de función de forma inmediata y sincrónicamente en el contexto de un token de cancelación dado. |
| send (función) | Sobrecargado Una operación de envío sincrónica, que espera hasta que el destino acepte o rechace el mensaje. |
| Función set_ambient_scheduler (Tiempo de ejecución de concurrencia) | |
| Función set_task_execution_resources | Sobrecargado Limita los recursos de ejecución que utilizan los subprocesos de trabajo internos del Runtime de Concurrencia al conjunto de afinidad especificado. Se puede llamar a este método solamente antes de que el Administrador de recursos se haya creado o entre dos duraciones del Administrador de recursos. Se puede invocar varias veces siempre que el Administrador de recursos no exista en el momento de la invocación. Después de que se haya establecido un límite de afinidad, permanece en vigor hasta la siguiente llamada válida al método set_task_execution_resources.La máscara de afinidad proporcionada no necesita ser un subconjunto de la máscara de afinidad del proceso. La afinidad del proceso se actualizará en caso necesario. |
| Función swap | Intercambia los elementos de dos objetos concurrent_vector. |
| Función task_from_exception (en tiempo de ejecución de concurrencia) | |
| Función task_from_result (Concurrency Runtime) | |
| función Trace_agents_register_name | Asocia el nombre dado al bloque de mensajes o agente en el trazado ETW. |
| función try_receive | Sobrecargado Una implementación general de try-receive, que permite a un contexto buscar datos de un único origen y filtrar los valores que se consideran aceptables. Si los datos no están listos, este método devolverá false. |
| Función wait | Hace una pausa en el contexto actual para un periodo de tiempo indicado. |
| función when_all | Crea una tarea que se completará correctamente cuando todas las tareas proporcionadas como argumentos se completen correctamente. |
| función when_any | Sobrecargado Crea una tarea que se completará correctamente cuando cualquiera de las tareas proporcionadas como argumentos se complete correctamente. |
Operadores
| Nombre | Descripción |
|---|---|
| operator!= | Comprueba si el objeto concurrent_vector en el lado izquierdo del operador no es igual al objeto concurrent_vector del lado derecho. |
| operator&& | Sobrecargado Crea una tarea que se completará correctamente cuando ambas tareas proporcionadas como argumentos se completen correctamente. |
operator|| |
Sobrecargado Crea una tarea que se completará correctamente cuando una de las tareas proporcionadas como argumentos se complete correctamente. |
| operador< | Comprueba si el objeto concurrent_vector en el lado izquierdo del operador es menor que el objeto concurrent_vector del lado derecho. |
| operator<= | Comprueba si el objeto concurrent_vector en el lado izquierdo del operador es menor o igual que el objeto concurrent_vector del lado derecho. |
| operator== | Comprueba si el objeto concurrent_vector en el lado izquierdo del operador es igual al objeto concurrent_vector del lado derecho. |
| operador> | Comprueba si el objeto concurrent_vector en el lado izquierdo del operador es mayor que el objeto concurrent_vector del lado derecho. |
| operator>= | Comprueba si el objeto concurrent_vector en el lado izquierdo del operador es mayor o igual que el objeto concurrent_vector del lado derecho. |
Constantes
| Nombre | Descripción |
|---|---|
| AgentEventGuid | Un identificador GUID de categoría ({B9B5B78C-0713-4898-A21A-C67949DCED07}) que describe los eventos ETW desencadenados por la Biblioteca de agentes en el Concurrency Runtime. |
| ChoreEventGuid | Un identificador GUID de categoría que describe eventos ETW desencadenados por el runtime de simultaneidad que están directamente relacionados con quehaceres o tareas. |
| ConcRT_ProviderGuid | El GUID del proveedor de ETW para el runtime de simultaneidad. |
| CONCRT_RM_VERSION_1 | Indica la compatibilidad de la interfaz del Administrador de recursos definida en Visual Studio 2010. |
| ConcRTEventGuid | Un identificador GUID de categoría que describe eventos ETW desencadenados por el Tiempo de ejecución de simultaneidad que no están descritos más específicamente por otra categoría. |
| ContextEventGuid | Un GUID de categoría que describe los eventos ETW que se desencadenan por el Concurrency Runtime y que están directamente relacionados con los contextos. |
| COOPERATIVE_TIMEOUT_INFINITE | Valor que indica que una espera nunca debe agotarse. |
| COOPERATIVE_WAIT_TIMEOUT | Valor que indica que se ha agotado el tiempo de espera. |
| INHERIT_THREAD_PRIORITY | Valor especial para la clave de política ContextPriority que indica que la prioridad del subproceso en todos los contextos del programador debe ser la misma que la del subproceso que creó el programador. |
| LockEventGuid | Un identificador GUID de categoría que describe los eventos ETW generados por el Concurrency Runtime que están directamente relacionados con bloqueos. |
| MaxExecutionResources | Valor especial para las claves de política MinConcurrency y MaxConcurrency. Tiene como valor predeterminado el número de subprocesos de hardware en el equipo si no existen otras restricciones. |
| PPLParallelForeachEventGuid | Un GUID de categoría que describe eventos ETW activados por el Concurrency Runtime que están directamente relacionados con el uso de la función parallel_for_each. |
| PPLParallelForEventGuid | Un GUID de categoría que describe eventos ETW activados por el Concurrency Runtime que están directamente relacionados con el uso de la función parallel_for. |
| PPLParallelInvokeEventGuid | Un GUID de categoría que describe eventos ETW activados por el Concurrency Runtime que están directamente relacionados con el uso de la función parallel_invoke. |
| ResourceManagerEventGuid | Un identificador GUID de categoría que describe eventos ETW desencadenados por el runtime de simultaneidad que están directamente relacionados con el administrador de recursos. |
| ScheduleGroupEventGuid | Un GUID de categoría que describe eventos ETW disparados por Concurrency Runtime que están directamente relacionados con grupos de programación. |
| SchedulerEventGuid | Un GUID de categoría que describe los eventos ETW activados por el Concurrency Runtime que están directamente relacionados con la actividad del planificador. |
| VirtualProcessorEventGuid | Un identificador GUID de categoría que describe eventos ETW desencadenados por el runtime de simultaneidad que están directamente relacionados con los procesadores virtuales. |
Requisitos
Encabezado: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h