Advertisement
AlexNovoross87

Untitled

Dec 22nd, 2024
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. Метаморфоза получается:
  2. Работа на win11.
  3.  
  4. Вот так все работает отлично:
  5.  
  6. int main() {
  7. Установка кодовой страницы для ввода и вывода
  8. SetConsoleCP(1251); // Кодировка ввода
  9. SetConsoleOutputCP(1251); // Кодировка вывода
  10.  
  11. boost::asio::io_context io;
  12. net::steady_timer st(io,1s);
  13. st.async_wait([](sys::error_code ec){
  14. if(ec){
  15. std::cout<<ec.message()<<std::endl;
  16. }
  17. std::cout<<"Running"<<std::endl;
  18. });
  19. io.run();
  20. }
  21.  
  22. Но только стоит выделить отдельную область видимости:
  23. int main() {
  24. Установка кодовой страницы для ввода и вывода
  25. SetConsoleCP(1251); // Кодировка ввода
  26. SetConsoleOutputCP(1251); // Кодировка вывода
  27.  
  28. boost::asio::io_context io;
  29. { // <-------------------------------------!!!!!!!!!!!!!
  30. net::steady_timer st(io,1s);
  31. st.async_wait([](sys::error_code ec){
  32. if(ec){
  33. std::cout<<ec.message()<<std::endl;
  34. }
  35. std::cout<<"Running"<<std::endl;
  36. });
  37. } // <-------------------------------------!!!!!!!!!!!!!!
  38. io.run();
  39. }
  40. Выводит:
  41. Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения
  42.  
  43. Эт че получается... при выходе из области видимости таймер отправляется к бинарным праотцам, а потом мы запускаем выполнение контекста
  44. с несуществующим таймером??? Я правильно понимаю???
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement