对于winapi包装器,我想在给出呼叫的持续时间内使用计时器.代码示例:
bool setTimer(std::chrono::duration<std::chrono::milliseconds> duration)
{
unsigned int dwDuration = Do some chrono magic here
SetTimer(m_hWnd,1,dwDuration,0);
}
Run Code Online (Sandbox Code Playgroud)
dwDuration必须以毫秒为单位.
第一个问题:如何做到魔术.
第二个问题:参数声明好吗?
Cub*_*bbi 22
类型的名称是std::chrono::milliseconds
,它有一个成员函数count()
,返回那些毫秒的数量:
bool setTimer(std::chrono::milliseconds duration)
{
unsigned int dwDuration = duration.count();
return std::cout << "dwDuration = " << dwDuration << '\n';
}
Run Code Online (Sandbox Code Playgroud)
在线演示:http://coliru.stacked-crooked.com/a/03f29d41e9bd260c
如果你想要超级迂腐,count()的返回类型是 std::chrono::milliseconds::rep
如果你想处理小数毫秒,那么类型将是std::chrono::duration<double, std::milli>
(并且count()的返回类型然后是double)
您可以使用以下代码:
auto now = chrono::high_resolution_clock::now();
auto timeMillis = chrono::duration_cast<chrono::milliseconds>(now.time_since_epoch()).count();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22375 次 |
最近记录: |