Класс CWinThread

Класс, представляющий поток исполнения в приложении.

class CWinThread : public CCmdTarget

Члены

Открытые конструкторы

Имя

Описание

CWinThread::CWinThread

Создает объект CWinThread.

Открытые методы

Имя

Описание

CWinThread::CreateThread

Начинается выполнение объекта CWinThread.

CWinThread::ExitInstance

Переопределение для очистки когда поток завершается.

CWinThread::GetMainWnd

Извлекает указатель на главное окно для потока.

CWinThread::GetThreadPriority

Возвращает приоритет текущего потока.

CWinThread::InitInstance

Переопределение для инициализации экземпляра потока.

CWinThread::IsIdleMessage

Проверяет наличие специальных сообщений.

CWinThread::OnIdle

Переопределение для выполнения обработки времени простоя поток- в XML-структуру.

CWinThread::PostThreadMessage

Создает сообщение с другим объектом CWinThread.

CWinThread::PreTranslateMessage

Сообщения фильтров, прежде чем они отправляются в функции Windows TranslateMessage и DispatchMessage.

CWinThread::ProcessMessageFilter

Некоторые перехватывает сообщения до того, как они достигнут приложения.

CWinThread::ProcessWndProcException

Перехватывает все необработанные исключения, вызываемые обработчиков сообщений и команды потока.

CWinThread::PumpMessage

Содержит цикл обработки сообщений потока.

CWinThread::ResumeThread

Уменьшает счетчик приостановки работы потока.

CWinThread::Run

Функции управления для потоков с сообщением нагнетает. Переопределение настраивать по умолчанию цикл обработки сообщений.

CWinThread::SetThreadPriority

Задает приоритет текущего потока.

CWinThread::SuspendThread

Увеличивает число поток приостановить.

Открытые операторы

Имя

Описание

ДЕСКРИПТОР CWinThread::operator

Получает дескриптор объекта CWinThread.

Открытые члены данных

Имя

Описание

CWinThread::m_bAutoDelete

Определяет, является ли объект уничтожен при завершении потока.

CWinThread::m_hThread

Дескриптор к текущему потоку.

CWinThread::m_nThreadID

Идентификатор текущего потока.

CWinThread::m_pActiveWnd

Указатель на главное окно контейнерного приложения, когда OLE-сервер активный в- размещения.

CWinThread::m_pMainWnd

Сохраняет указатель на главное окно приложения.

Заметки

Главный поток выполнения обычно предоставляется объектом, производным от CWinApp; CWinApp является производным от CWinThread. Дополнительные объекты CWinThread позволяют выполнять несколько потоков в пределах заданного приложения.

2 Часто используемыми типами потоков, которые CWinThread поддерживает: рабочие потоки и потоки интерфейса пользователя. Рабочие потоки не имеют цикл обработки сообщений: например, поток, выполняющий вычисления фона в приложении электронных таблиц. Потоки интерфейса пользователя есть сообщения насоса и процессов, полученные из системы. CWinApp и производные от него классы примерами потоков интерфейса пользователя. Другие потоки интерфейса пользователя также может наследоваться напрямую от CWinThread.

Объекты класса CWinThread обычно существуют на длительность потока. Если нужно изменить эти расширения функциональности, установите m_bAutoDelete к FALSE.

Класс CWinThread необходим, чтобы сделать ваши код и MFC полностью потокобезопасным. Поток- локальные данные, используемые платформой для сохранения данных о поток- определенной управляются объектами CWinThread. Зависимость по этой причине на CWinThread для обработки поток- локальных данных, любой поток, который использует MFC должна быть создана MFC. Например, поток, переданный функцией среды выполнения _beginthread, _beginthreadex не может использовать API MFC.

Создание потока, вызов AfxBeginThread. 2 Формы, в зависимости от того, нужно ли поток операций или интерфейса пользователя. Если необходимо, чтобы поток интерфейса пользователя, передайте в AfxBeginThread указатель на CRuntimeClass вашего CWinThread- производный класс. Если нужно создать рабочий поток, передайте в AfxBeginThread указатель на функцию управления, и параметром функции контроля. Для обоих рабочих потоков и потоков интерфейса пользователя, можно указать необязательные параметры, которые изменяют приоритет, размер стека, флаги создания и атрибуты безопасности. AfxBeginThread возвращает указатель на новый объект CWinThread.

Вместо вызова AfxBeginThread, можно создать производный объект CWinThread а затем вызвать CreateThread. Этот метод двухступенный конструкции полезен, если нужно повторно использовать объект CWinThread между последовательными создания и прекращениями запуска потока.

Дополнительные сведения о CWinThread см. в разделе статьи многопоточность с C++ и MFC, Многопоточность. Создание потоков интерфейса пользователя, Многопоточность. Создание рабочих потоков и Многопоточность. Использование классов синхронизации.

Иерархия наследования

CObject

CCmdTarget

CWinThread

Требования

Заголовок: afxwin.h

См. также

Ссылки

Класс CCmdTarget

Диаграмма иерархии

Класс CWinApp

Класс CCmdTarget