Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Odliczenie czasu

Ostatnio zmodyfikowano 2016-12-26 01:19
Autor Wiadomość
Warmix
Temat założony przez niniejszego użytkownika
Odliczenie czasu
» 2016-12-25 15:15:31
Potrzebuję zrobić coś takiego:
C/C++
Jakis tam kod
if( a == 1 )
{
    rozpocznij odliczenie czasu w sekundach
}

while( dopoki nie uplynelo 5 sekund )
{
    wykonuj kod
}

dalsza czesc kodu

W jaki sposób coś takiego osiągnąć? Jeśli będzie to ważne, to wykorzystam to w innym wątku, tak, żeby pętla while nie blokowała mi "dalszej częsci kodu", ale to już sobie jakoś sam przełożę, chodzi mi o samo sterowanie czasem i odliczanie.
P-155411
Gibas11
» 2016-12-25 15:19:17
std::chrono
//edit:
Naskrobałem na szybko jakąś klasę do tego, mniej–więcej tak sam bym to zrobił na co dzień.
C/C++
template < typename local_clock = std::chrono::steady_clock >
class Wait {
private:
    const std::chrono::time_point < local_clock > m_constructionTime;
    const double m_time;
   
public:
    Wait( const double seconds )
        : m_constructionTime
    { local_clock::now() }
    , m_time { seconds }
    { }
   
    bool check() const {
        //Żeby potem było czytelniej
        using std::chrono::duration;
       
        const duration < double > dur( local_clock::now() - m_constructionTime );
        return dur.count() > m_time;
    }
};
//edit 2:
Mam nadzieję, że nowe forum już blisko i ładniej się tam formatuje kod, bo to co mi się tu wstawiło jest, delikatnie mówiąc, wymiotogenne.
C/C++
Wait( const double seconds )
    : m_constructionTime
{ local_clock::now() }
, m_time { seconds }
{ }
P-155412
michal11
» 2016-12-25 22:54:11
W konstruktorze zamiast double używaj seconds z chrono
P-155424
Gibas11
» 2016-12-25 23:29:45
Jest jakiś konkretny powód? Mam gwarancję, że
dur.count()
 zwróci mi typ double z sekundami a
std::chrono::seconds
 może przechowywać tylko wartości całkowite, więc muszę się przerzucić na milisekundy chcąc używać ułamków sekund albo bawić w konwersję zmiennoprzecinkowych sekund na całkowite milisekundy w konstruktorze itp.
P-155427
michal11
» 2016-12-26 00:37:07
P-155434
Gibas11
» 2016-12-26 01:19:46
Chętnie obejrzę, ale raczej szybko nie będę miał godziny do zużycia na wykład o
std::chrono
. ;)
P-155440
« 1 »
  Strona 1 z 1