Bazı olaylardan sonra 20
milisaniye (RTP paketleri göndermek için) bazı işlevleri doğru bir şekilde çalıştırmam gerekiyor. olarak20 millisec için doğru bekleyin
std::this_thread::sleep_for(std::chrono::milliseconds(20));
boost::this_thread::sleep_for(std::chrono::milliseconds(20));
Sleep(20);
Ayrıca farklı çarpıklıkları:
auto a= GetTickCount();
while ((GetTickCount() - a) < 20) continue;
Ayrıca denenmiş mikro ve nanosaniye sonraki varyantları çalıştılar.
Bu yöntemlerin tümü -6ms
ile +12ms
arasında bir hata içeriyor ancak kabul edilemez. Nasıl doğru çalışır?
Benim düşüncem, bu + -1ms kabul edilebilir, ancak daha fazla değil. UPDATE1
: süreyi ölçmek için ben çünkü işletim sistemi çekirdekleri zaman ve konuları yönetmek nasıl, std::chrono::high_resolution_clock::now();
Bunu yapmak için bir iş parçacığı ve bir zamanlayıcı kullanıyor musunuz? – ChrisF
Beklenen sürenin doğru olduğunu ölçmenin zamanlayıcılı olduğundan emin misiniz? – MikeCAT
İşletim sistemi nedir? – antiHUMAN