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 |