Созданные ответы форума
-
АвторСообщения
-
Ладно, спасибо. Буду разбираться.
Понял тебя. Это значит я не совсем верно понял thread. Ну, ладно, с этим разобрались. Но мне всё-таки нужно ещё и рисовать в другом потоке (Например, для экрана загрузки. Для красоты – надо всё-таки). Как мне тогда это реализовать?
1. У вас используется функция join и ещё она после основного цикла. А мне надо чтобы она использовалась во время основного цикла. По этому я и использую detach. (Да, у вас работать будет и у меня с моим методом работало, но события не работали, а значит я просто не мог окно закрыть)
2. Это не поможет решению. Мне даже проверять нет смысла, так как это не работает, как я и говорил, и для остальных функций, связанных с окном (Тот же window.draw, например).C++12345678910111213141516171819202122232425262728#include ...using namecpace ...void WinEvent(RenderWindow &window){while(window.isOpen){Event event;while (window.pollEvent(event)){if (event.type == Event::Closed){window.close();}}}}int main(){RenderWindow window(.....);thread thr(WinEvent, ref(window));thr.detach();while(window.isOpen){............}}В данном случае будет окно, которое не поддаётся никаким изменениям и даже закрыть нельзя. И лишь потому, что thread не возвращает данные именно окна. Пробовал тоже самое с другими переменными – всё в норме.
Можно так же вместо цикла событий там пихнуть, например window.draw() и тот же результат будет. Он просто не отобразит. -
АвторСообщения