![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 16.02.2015
Сообщений: 3
|
![]()
Всем привет, решил попробовать свои силы в написании игрушки похожую на minecraft.
![]() ![]() ![]() ![]() скрин для представления 5vsuo7o02857.jpg проект VoxelEngine 2.rar |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,371
|
![]()
В детали не вникал, но что бросается в глаза:
1) Проверка на queue.empty не защиена мьютексом 2) В следствии пункта 1 при входе в сам цикл может оказаться, что в очереди реально ничего нет. Сей механизм жрет CPU на все 100% - прочитайте про семафоры, как раз то что нужно. Забудьте раз и навсегда функцию TerminateThread() пока не поздно ![]() |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 16.02.2015
Сообщений: 3
|
![]() Цитата:
В программе еще остался фриз( окно перестает реагировать на что либо даже крестик нажать нельзя ), с чем это может быть связанно? |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,371
|
![]()
Про TerminateThread почитайте здесь:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx Окно зависает если никто не качает сообщения. Судя по коду, у вас это может произойти при нажатии на 1 - OnEvent будет работать до бесконечности, поскольку некому обработать сообщения и изменить статус клавишы. Воспользуйтесь GetAsyncKeyState или измените алгоритм OnEvent. Все сказанное на основе осмотра кода, если проблема останется, запустите под отладчиком да посмотрите где зависнет. |
![]() |
![]() |