Compartir a través de


Función InterlockedAdd

Agrega el valor de forma atómica.

Sintaxis

void InterlockedAdd(
  in  UINT dest,
  in  UINT value,
  out UINT original_value
);

Parámetros

dest [in]

Tipo: UINT

Dirección de destino.

value [in]

Tipo: UINT

Valor de entrada.

original_value [out]

Tipo: UINT

El valor original.

Valor devuelto

Esta función no devuelve ningún valor.

Observaciones

Esta operación solo se puede realizar en recursos con tipo int o uint y variables de memoria compartidas. Hay tres posibles usos para esta función. La primera es cuando R es un tipo de variable de memoria compartida. En este caso, la función realiza un agregado atómico de valor al registro de memoria compartida al que hace referencia dest. El segundo escenario es cuando R es un tipo de variable de recurso. En este escenario, la función realiza una adición atómica del valor a la ubicación del recurso a la que hace referencia dest. Por último, el tercer escenario es cuando R es un tipo de variable local. En este escenario, la función se reduce a una suma del valor de dest y value, almacenado en dest. La función sobrecargada tiene una variable de salida adicional que se establecerá en el valor original dest. Esta operación sobrecargada solo está disponible cuando R es legible y grabable.

Esta función se admite en los siguientes tipos de sombreadores:

VS HS DS GS PS CS
x x x x x x

Requisitos

Consulte también

RWByteAddressBuffer

Modelo de sombreador 5