Files
XCEngine/docs/api/threading/mutex/try-lock-const.md
ssdfasd f427699ac6 refactor: improve test infrastructure and fix OpenGL GLAD initialization
- Rename D3D12Enum.h to D3D12Enums.h for naming consistency
- Fix OpenGL unit test GLAD initialization by using gladLoadGL()
  instead of gladLoadGLLoader(wglGetProcAddress) for fallback support
- Migrate remaining tests to use gtest_discover_tests for granular
  test discovery (math, core, containers, memory, threading, debug,
  components, scene, resources, input, opengl)
- Remove obsolete TEST_RESOURCES_DIR and copy_directory commands
  from OpenGL unit test CMakeLists (minimal/Res doesn't exist)
- Update TEST_SPEC.md with performance metrics and per-module
  build/test commands for faster development workflow
- Update CMake path references to use lowercase paths
2026-03-23 00:43:02 +08:00

42 lines
848 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mutex::try_lock
```cpp
bool try_lock() const;
```
尝试获取互斥锁非阻塞const 版本)。如果锁可用则立即获取并返回 `true`,否则立即返回 `false` 而不阻塞。
该方法是 `std::lockable` 接口的实现。
**参数:**
**返回:** `bool` - 获取成功返回 `true`,锁不可用返回 `false`
**线程安全:**
**复杂度:** O(1)
**示例:**
```cpp
#include "XCEngine/Threading/Mutex.h"
#include <iostream>
XCEngine::XCEngine::Threading::Mutex mtx;
volatile bool updated = false;
void TryUpdate() {
if (mtx.try_lock()) {
updated = true;
mtx.unlock();
std::cout << "Update succeeded" << std::endl;
} else {
std::cout << "Update skipped (lock held)" << std::endl;
}
}
```
## 相关文档
- [Mutex 总览](mutex.md) - 返回类总览