كيفية عمل تأخير (sleep) في C++ لعدة ملي ثانية؟
مرحبًا! أكتب برنامجًا بسيطًا بلغة C++ على Linux، وأحتاج إلى عمل توقف لبضع ملي ثانية. أنا مبتدئ، وأعرف حاليًا فقط دالة `sleep()` من ``، لكنها على ما يبدو تعمل فقط بالثواني. أحتاج شيئًا مثل "انتظر 500 ملي ثانية".
إليك مثال على الكود الخاص بي، والذي بالطبع لا يتم ترجمته لأنني لا أعرف الدالة الصحيحة:
```cpp
#include
#include // هنا يوجد sleep()
int main() {
std::cout << "نبدأ..." << std::endl;
sleep(500); // خطأ! sleep ينتظر 500 ثانية، وليس ملي ثانية
std::cout << "هل مرت 500 ملي ثانية؟" << std::endl;
return 0;
}
```
أستخدم Linux (Ubuntu)، وأترجم باستخدام g++. حاولت البحث في Google، لكنني وجدت العديد من الخيارات المختلفة: `usleep`، `nanosleep`، `std::this_thread::sleep_for` — وأصبحت مرتبكًا. ما هي الطريقة الصحيحة والحديثة لـ C++؟ يُفضل أن يكون الكود قابلًا للنقل (ليس فقط على Linux، بل على Windows أيضًا إذا أمكن). شكرًا مقدمًا!