使用VS2017
我正在尝试使用 std::shared_timed_mutex ,特别是成员函数 try_lock_for 。我试图将超时指定为 100 毫秒。
现在在 Alan Birtles 的帮助下进行编辑。我现在有
#include <chrono> // for std::chrono
#include <shared_mutex> // for std::shared_timed_mutex
#include <iostream> // for std::cerr
static std::shared_timed_mutex SHMutex;
void testfunc()
{
using duration2 = std::chrono::duration<_int64, std::milli>;
// WAS using duration2 = std::chrono::duration<_int64, std::chrono::milliseconds>;
const duration2 dur(100);
if (!SHMutex.try_lock_for(dur))
std::cerr << "Lock failure for SHMutex" << '\n';
}
Run Code Online (Sandbox Code Playgroud)
无论我做什么,Visual Studio 都会抱怨 dur 实例化错误的编译错误。我必须做什么才能使其正常工作?
编译错误现在为零。艾伦·伯特尔斯的回答改变了一切