, , , . chrono . :
double frameTime = elapsed_seconds.count();
this->Work(frameTime);
Work, duration<double> double? , double , Work. - , :
this->Work(elapsed_seconds.count());
:
std::chrono::duration<double> elapsedWorkTime = afterWork - end ;
const double minWorkTime = 1000 / this->timer.NumberOfFramePerSeconds;
if(elapsedWorkTime.count() < minWorkTime)
elapsedWorkTime . minWorkTime . if . :
std::chrono::duration<double> minWorkTime(1./this->timer.NumberOfFramePerSeconds);
if(elapsedWorkTime < minWorkTime)
, minWorkTime ( ):
std::chrono::duration<double, std::milli> minWorkTime(1000./this->timer.NumberOfFramePerSeconds);
if(elapsedWorkTime < minWorkTime)
, 1000 - , .
double timeToSleep = minWorkTime - elapsedWorkTime.count();
std::this_thread::sleep_for(std::chrono::milliseconds((int)timeToSleep));
chrono . :
std::this_thread::sleep_for(minWorkTime - elapsedWorkTime);
, :
auto timeToSleep = minWorkTime - elapsedWorkTime;
std::this_thread::sleep_for(timeToSleep);
.count() . duration s. , chrono. .count(), . chrono, , .count(), chrono .
VS2013 , . , ...
std::this_thread::sleep_for(std::chrono::duration_cast
<std::chrono::milliseconds>(minWorkTime - elapsedWorkTime));
, chrono.
Caesar .