Bagikan melalui


Metode ID3D12Fence::SetEventOnCompletion (d3d12.h)

Menentukan peristiwa yang dinaikkan saat pagar mencapai nilai tertentu.

Sintaks

HRESULT SetEventOnCompletion(
  UINT64 Value,
  HANDLE hEvent
);

Parameter

Value

Jenis: UINT64

Nilai pagar ketika peristiwa akan disinyalir.

hEvent

Jenis: HANDEL

Handel ke objek peristiwa.

Menampilkan nilai

Jenis: HRESULT

Metode ini mengembalikan E_OUTOFMEMORY jika komponen kernel tidak memiliki memori yang memadai untuk menyimpan peristiwa dalam daftar. Lihat Kode pengembalian Direct3D 12 untuk kemungkinan nilai pengembalian lainnya.

Keterangan

Untuk menentukan beberapa pagar sebelum peristiwa dipicu, lihat SetEventOnMultipleFenceCompletion.

Jika hEvent adalah handel null, MAKA API ini tidak akan kembali sampai nilai pagar yang ditentukan telah tercapai.

Metode ini dapat dipanggil dengan aman dari beberapa utas pada satu waktu.

Contoh

Sampel D3D12Multithreading menggunakan ID3D12Fence::SetEventOnCompletion sebagai berikut:

// Wait for the command list to execute; we are reusing the same command 
// list in our main loop but for now, we just want to wait for setup to 
// complete before continuing.

// Signal and increment the fence value.
const UINT64 fenceToWaitFor = m_fenceValue;
ThrowIfFailed(m_commandQueue->Signal(m_fence.Get(), fenceToWaitFor));
m_fenceValue++;

// Wait until the fence is completed.
ThrowIfFailed(m_fence->SetEventOnCompletion(fenceToWaitFor, m_fenceEvent));
WaitForSingleObject(m_fenceEvent, INFINITE);

Lihat Kode contoh dalam referensi Direct3D 12.

Persyaratan

   
Target Platform Windows
Header d3d12.h
Pustaka D3D12.lib
DLL D3D12.dll

Lihat juga

ID3D12Fence

Sinkronisasi multi-mesin