> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SetDeleteOnDestroy

> 当与给定缓存对应的所有缓存会话对象都被销毁时，该缓存会被清除。

当与给定缓存对应的所有缓存会话对象都被销毁时，该缓存会被清除。

请参阅**备注**了解可以清除磁盘缓存的各种方式。

## 备注

可以通过以下方式之一清除磁盘缓存。

* 显式清除：在会话对象上调用 **SetDeleteOnDestroy**，然后释放该会话。
* 显式清除（在开发人员模式下）：使用 [D3D12\_SHADER\_CACHE\_KIND\_FLAG\_APPLICATION\_MANAGED](/reference/graphics/d3d12/enums/d3d12_shader_cache_kind_flags_public) 调用 [ID3D12Device9::ShaderCacheControl](/reference/graphics/d3d12/interfaces/id3d12device9/methods/id3d12device9_shadercachecontrol_public)。
* 隐式清除：使用与创建时不匹配的版本创建会话对象。
* 外部清除：由磁盘清理实用程序枚举并清除。使用 [D3D12\_SHADER\_CACHE\_FLAG\_USE\_WORKING\_DIR](/reference/graphics/d3d12/enums/d3d12_shader_cache_flags_public) 标志创建的缓存不会发生这种情况。
* 手动清除：对于 [D3D12\_SHADER\_CACHE\_FLAG\_USE\_WORKING\_DIR](/reference/graphics/d3d12/enums/d3d12_shader_cache_flags_public) 缓存，删除存储在磁盘上的文件（`*.idx`、`*.val` 和 `*.lock`）。对于存储在工作目录之外的缓存，应用程序不应尝试执行此操作。

## 要求

**头文件：** d3d12\_xs.h 或 d3d12\_x.h\
**库：** d3d12\_xs.lib 或 d3d12\_x.lib\
**支持的平台**：XBOX Series 主机和 XBOX One 系列

## 另请参阅

* [D3D12 着色器缓存 API](https://microsoft.github.io/DirectX-Specs/d3d/ShaderCache.html)


## Related topics

- [D3D12_SHADER_CACHE_MODE](/zh-CN/reference/graphics/d3d12/enums/d3d12_shader_cache_mode_public.md)
- [DestroyOwnedObject](/zh-CN/reference/graphics/d3d12/interfaces/id3d12lifetimetracker/methods/id3d12lifetimetracker_destroyownedobject_public.md)
- [PartyNetwork::DestroyEndpoint](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_destroyendpoint.md)
- [PFMultiplayerDestroyMatchmakingTicket](/zh-CN/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmatchmaking/functions/pfmultiplayerdestroymatchmakingticket.md)
- [PartyManager::DestroyLocalUser](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_destroylocaluser.md)
