Многопоточная обработка вводаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Многопоточная обработка ввода

Сообщение Anonymous »

Я новичок в использовании многопоточного чтения, и я работаю над программой, которая обрабатывает движение мыши, состоит из двух потоков, основной поток получает вход и хранит положение мыши в фиксированном месте, а детская потока петли через это место, чтобы получить значение. Итак, как мне уменьшить использование ЦП, я использую условные переменные для достижения этого, есть ли лучший способ сделать это? Кажется, что добавление задержки в подгруппы также будет работать < /p>
void Engine::InputManager::MouseMove(const MouseMoveEvent& ev)
{
cur_mouse_ev_.x_ = ev.x_;
cur_mouse_ev_.y_ = ev.y_;
cv_.notify_all();
}
void Engine::InputManager::ProcessInput(MouseMoveEvent* ev)
{
while (true)
{
cv_.wait(u_mutex_);
float dx = static_cast(ev->x_ - pre_mouse_pos[0]) * 0.25f;
float dy = static_cast(ev->y_ - pre_mouse_pos[1]) * 0.25f;
g_pGraphicsManager->CameraRotateYaw(dx);
pre_mouse_pos[0] = ev->x_;
pre_mouse_pos[1] = ev->y_;
}
}


Подробнее здесь: https://stackoverflow.com/questions/718 ... processing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»