Fungsi InterlockedExchange

Menukar nilai, secara atomik.

Sintaks

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

Parameter

dest [in]

Jenis: UINT

Alamat tujuan.

value [in]

Jenis: UINT

Nilai input.

original_value [out]

Jenis: UINT

Nilai aslinya.

Mengembalikan nilai

Fungsi ini tidak mengembalikan nilai.

Keterangan

Operasi ini hanya dapat dilakukan pada sumber daya berjenis skalar dan variabel memori bersama. Ada tiga kemungkinan penggunaan untuk fungsi ini. Yang pertama adalah ketika R adalah jenis variabel memori bersama. Dalam hal ini, fungsi melakukan operasi pada register memori bersama yang dirujuk oleh dest. Skenario kedua adalah ketika R adalah jenis variabel sumber daya. Dalam skenario ini, fungsi melakukan operasi pada lokasi sumber daya yang direferensikan oleh tujuan. Terakhir, skenario ketiga adalah ketika R adalah jenis variabel lokal. Dalam skenario ini, fungsi berkurang ke operasi yang dilakukan menggunakan operasi lokal. Operasi ini hanya tersedia ketika R dapat dibaca dan dapat ditulis.

Fungsi ini didukung dalam jenis shader berikut:

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

 

Lihat juga

RWByteAddressBuffer

Model Shader 5