修复LeaveCriticalSection异常

使用InitializeCriticalSectionEx进行初始化,设置SpinCount使线程不至于立刻被置于等待状态而耗费大量的CPU周期,同时析构函数中释放CS
This commit is contained in:
GamePPYi 2022-03-03 16:46:21 +08:00
commit 711b977a5e

View file

@ -144,7 +144,7 @@ bool GraphicsCaptureFrameSource::Initialize() {
}
InitializeConditionVariable(&_cv);
InitializeCriticalSection(&_cs);
InitializeCriticalSectionEx(&_cs, 4000, CRITICAL_SECTION_NO_DEBUG_INFO);
App::GetInstance().SetErrorMsg(ErrorMessages::GENERIC);
SPDLOG_LOGGER_INFO(logger, "GraphicsCaptureFrameSource 初始化完成");
@ -372,4 +372,6 @@ GraphicsCaptureFrameSource::~GraphicsCaptureFrameSource() {
if (_srcWndStyle) {
SetWindowLongPtr(App::GetInstance().GetHwndSrc(), GWL_EXSTYLE, _srcWndStyle);
}
DeleteCriticalSection(&_cs);
}