Я пытаюсь записать миллисекунды времени, прошедшего за определенный период времени.
У меня есть такой класс
// class member declarations
class MyClass {
std::chrono::high_resolution_clock::time_point m_start;
std::chrono::system_clock::duration m_elapsed;
};
У меня есть 2 метода в классе. Один вызывается из основного, то есть func1CalledFromMainThread
.
// Class methods
using namespace std::chrono;
void MyClass::func1CalledFromMainThread() {
m_start = std::chrono::high_resolution_clock::now();
}
И еще один, который func2CalledFromADifferentThread
вызывается из другого потока
void MyClass::func2CalledFromADifferentThread() {
// after some time following line of code runs from a different thread
auto end = high_resolution_clock::now();
m_elapsed = duration_cast<milliseconds>(end - m_start);
std::cout << "Elapsed time in milliseconds is " << m_elapsed.count()/1000 << std::endl;
}
Проблема в журнале cout
. Я вижу, что мне нужно разделить на 1000
, чтобы получить миллисекунды из m_elapsed
. Разве count
здесь не возвращает счет std::chrono::milliseconds
? Почему я должен делить на 1000
здесь? count()
всегда возвращается в microseconds
или я делаю ошибку?