2016-06-20 79 views
1

考慮這段代碼:sleep_until不MSVC與steady_clock工作

#include <chrono> 
#include <thread> 

using namespace std::chrono_literals; 

int main() 
{ 
    auto sx = std::chrono::steady_clock::now(); 
    std::this_thread::sleep_until(sx + 10s); 
} 

我希望這個代碼睡10秒;如果我使用GCC進行編譯,這正是它所做的。但是如果我使用微軟VS2015,它根本不會睡覺。

如果我改變steady_clocksystem_clock,微軟編譯器生成如預期那樣運行的代碼(但可能是system_clock調整敏感。)

這是一個錯誤,或者有我誤解的東西嗎?

+0

你的代碼在我的系統中完美工作。我正在使用MSVC2015更新2與Windows 10 x64 –

+0

好吧;我的編譯器不是更新2.我將下載該版本並查看它是否修復了此問題。 – oz1cz

+0

確定@ elvis.dukaj,將MSVC2015升級到_Update 2_解決了問題!謝謝!如果您想將您的評論更改爲答案,我會承認它是對這個問題的回答。 (或者我可以刪除問題,如果你喜歡的話。) – oz1cz

回答

2

你的代碼在我的系統中完美工作。我正在使用Windows 10 x64的MSVC2015更新2。

我認爲這是msvc2015的一個bug。

+0

是的,更新MSVC2015到_Update 2_解決了這個問題。 – oz1cz