Операционные системы. Учебное пособие. Марапулец Ю.В. - 75 стр.

UptoLike

Составители: 

// ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять/удалять в
// этом месте макросы обработки сообщений
//}}AFX_MSG_MAP
END_MESSAGE_MAP ()
Объект класса CWinThread представляет поток выполнения в рамках приложения.
Хотя основной поток выполнения приложения обычно задается объектом класса, поро-
жденного от CWinApp, сам класс CWinApp является производным от класса
CWinThread.
Для обеспечения безопасности потоков в MFC-приложениях должны применяться
классы, являющиеся производными от класса CWinThread, библиотека MFC использует
переменные-члены этого класса. Потоки, созданные с помощью функции_beqinthreadex,
не могут использовать ни одной из API-функций библиотеки MFC.
Поддерживаются два основных типов потоков, а именно рабочие и интерфейс-
ные. Для рабочих потоков не нужно создавать цикл обработки сообщений. Такие потоки
могут выполнять фоновые вычисления в электронной таблице без взаимодействия с
пользователем и не должны реагировать на сообщения.
Интерфейсные потоки, в отличие от рабочих, обрабатывают сообщения, получен-
ные от системы (или от пользователя). Для них необходима специальная процедура об-
работки сообщений. Создаются интерфейсные потоки на базе класса CWinApp или не-
посредственно класса CWinThread.
Объект класса CWinThread обычно существует в течение всего времени существо-
вания потока, однако такой способ функционирования можно изменить, присвоив пере-
менной-члену m_bAutoDelete значение FALSE.
Потоки создаются с помощью функции AfxBeqinThread. Для создания интерфейс-
ного потока функции AfxBeqinThread следует передать указатель на класс CRuntimeC-
lass объекта, производного от класса CWinThread. В случае рабочих потоков функция
AfxBeqinThread вызывается с указанием управляющей функции и параметра, переда-
ваемого последней.
Как для рабочих, так для интерфейсных потоков можно указать дополнительные
параметры, изменяющие приоритет, размер стека, флаги создания и атрибуты безопас-
ности потока. Функция AfxBeqinThread возвращает указатель на новый объект класса
CWinThread.
В качестве альтернативного варианта можно определить, а затем создать объект,
производный от класса CWinThread, вызвав функцию CreateThread данного класса. В
этом случае производный объект может многократно использоваться при последова-
тельных созданиях и уничтожениях потока.
77
    // ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять/удалять в
    // этом месте макросы обработки сообщений
    //}}AFX_MSG_MAP
END_MESSAGE_MAP ()

      Объект класса CWinThread представляет поток выполнения в рамках приложения.
Хотя основной поток выполнения приложения обычно задается объектом класса, поро-
жденного от CWinApp, сам класс CWinApp является производным от класса
CWinThread.
      Для обеспечения безопасности потоков в MFC-приложениях должны применяться
классы, являющиеся производными от класса CWinThread, библиотека MFC использует
переменные-члены этого класса. Потоки, созданные с помощью функции_beqinthreadex,
не могут использовать ни одной из API-функций библиотеки MFC.
      Поддерживаются два основных типов потоков, а именно рабочие и интерфейс-
ные. Для рабочих потоков не нужно создавать цикл обработки сообщений. Такие потоки
могут выполнять фоновые вычисления в электронной таблице без взаимодействия с
пользователем и не должны реагировать на сообщения.
      Интерфейсные потоки, в отличие от рабочих, обрабатывают сообщения, получен-
ные от системы (или от пользователя). Для них необходима специальная процедура об-
работки сообщений. Создаются интерфейсные потоки на базе класса CWinApp или не-
посредственно класса CWinThread.
      Объект класса CWinThread обычно существует в течение всего времени существо-
вания потока, однако такой способ функционирования можно изменить, присвоив пере-
менной-члену m_bAutoDelete значение FALSE.
      Потоки создаются с помощью функции AfxBeqinThread. Для создания интерфейс-
ного потока функции AfxBeqinThread следует передать указатель на класс CRuntimeC-
lass объекта, производного от класса CWinThread. В случае рабочих потоков функция
AfxBeqinThread вызывается с указанием управляющей функции и параметра, переда-
ваемого последней.
      Как для рабочих, так для интерфейсных потоков можно указать дополнительные
параметры, изменяющие приоритет, размер стека, флаги создания и атрибуты безопас-
ности потока. Функция AfxBeqinThread возвращает указатель на новый объект класса
CWinThread.
      В качестве альтернативного варианта можно определить, а затем создать объект,
производный от класса CWinThread, вызвав функцию CreateThread данного класса. В
этом случае производный объект может многократно использоваться при последова-
тельных созданиях и уничтожениях потока.




                                        77