Поток ввода



Поток ввода обладает более узкой специализацией по сравнению с основным потоком. Он должен делать следующее:
  • обнаруживать ввод от мыши;
  • обновлять курсор;
  • синхронизироваться с основным потоком;
  • обрабатывать сигнал завершения, полученный от основного потока.
Для получения ввода от мыши могут применяться две схемы: опрос и оповещение. Опрос плохо подходит для нашего случая, потому что поток ввода постоянно остается активным, даже если пользователь не работает с мышью. С другой стороны, если поток ввода блокируется до поступления новых данных от мыши, он почти не расходует лишнего процессорного времени. С помощью имеющегося в DirectInput механизма оповещения можно заблокировать поток ввода до тех пор, пока DirectInput не сообщит о поступлении новых данных.
После получения сигнала поток ввода извлекает новые данные и обновляет курсор одним из двух способов, рассмотренных выше. Независимо от того, какой способ будет использован, обновление курсора необходимо синхронизировать с основным потоком, чтобы потоки не пытались обратиться к первичной поверхности одновременно.
Наконец, поток ввода отвечает за свое завершение. При получении сигнала от основного потока он должен прекратить работу.


Содержание Назад Вперед