Рабочие потоки и потоки пользовательского интерфейса

   
На этом шаге мы приведем классификацию потоков.

   
В MFC различают два типа потоков:

  • рабочие потоки (worker threads) и
  • потоки пользовательского интерфейса (user interface threads).

   
Эта разница характерна только для MFC - в обычном Win32 API ее нет.

   
На рабочие потоки в основном возлагаются фоновые задачи, не требуюшие пользовательского ввода.
Например в таких потоках выполняются функции резервного копирования баз данных и функции, следящие за
состоянием компьютерной сети.

   
Потоки пользовательского интерфейса могут обслуживать ввод пользователя, и в них реализован цикл обработки
событий и сообщений, возникающих в результате взаимодействия пользователя и приложения. Типичным примером
такого потока является первичный поток приложения, который представлен классом приложения, производным от
CWinApp. Вторичные потоки пользовательского интерфейса способны обеспечивать взаимодействие с
приложением, не снижая скорости выполнения остальных функций приложения. В качестве примера рассмотрим
приложение, с помощью которого анестезиологи контролируют состояние оперируемого пациента. Поток
пользовательского интерфейса позволяет ему заносить в базу данных названия вводимых пациенту препаратов, не
прерывая потоки, обрабатывающие данные о состоянии жизненно важных функций больного.

   
Генерируют дополнительный поток в MFC-приложении средствами функции AfxBeginThread(),
существующей в двух вариантах, один из которых создает рабочие потоки, а другой - потоки пользовательского интерфейса.
Особенности их работы мы рассмотрим далее.

   
На следующем шаге мы рассмотрим создание рабочего потока.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий