Шаг 64.
Среда программирования Visual C++.
Рабочие потоки и потоки пользовательского интерфейса

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

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

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

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

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

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

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




Предыдущий шаг Содержание Следующий шаг