
CWinThread об'єкт являє собою потоку виконання в межах програми. Основного потоку виконання зазвичай надаються об'єкта, отриманих від CWinApp; CWinApp походить від CWinThread. Додаткові CWinThread об'єкти дозволять декілька потоків в рамках даного застосування.
Існує два загальні типи теми, що підтримує CWinThread : робочі потоки і теми інтерфейсу користувача. Робочі потоки мають не повідомлення насос: наприклад, потік, який виконує обчислення фону в програмі електронних таблиць. Теми інтерфейсу користувача є повідомлення насос і обробки повідомлень, отриманих від системи. CWinApp і класів, отриманих від нього є прикладами теми інтерфейсу користувача. Інші теми користувача інтерфейс також може бути отримана безпосередньо з CWinThread.
Об'єктів, класу CWinThread зазвичай існують на час потік. Якщо ви хочете змінити цю поведінку, встановити m_bAutoDelete до ПОМИЛКОВИХ.
CWinThread клас є необхідним, щоб зробити ваш код і MFC повністю безпечним для потоку. Thread місцевий даних використовується для підтримки thread конкретної інформації в рамках керує CWinThread об'єктів. З-за цього залежність від CWinThread для обробки потоку місцевий даних будь-які теми, що використовує MFC має бути створено MFC. Наприклад, нитка, створений за допомогою функції під час _beginthreadex не можна використовувати будь-який MFC API.
Створити потік, називають AfxBeginThread. Є дві форми, залежно від того, чи хочете ви працівник або інтерфейсу користувача потоку. Якщо ви хочете, щоб інтерфейс потік, передати AfxBeginThread вказівник на CRuntimeClass з вашої CWinThread-отриманих клас. Якщо ви хочете створити робочих потоків, проходять AfxBeginThread вказівник на функцію контролю та параметр, щоб функція контролю. Робочі потоки та теми інтерфейсу користувача можна вказати додаткові параметри, які змінювати пріоритет, розмір стека, створення прапори та атрибути безпеки. AfxBeginThread повертає вказівник для вашого нового об'єкта CWinThread.
Замість того, щоб називати AfxBeginThread, ви можете побудувати CWinThread-отриманих об'єкт а потім викликати CreateThread. Цей метод два етапи будівництва є корисним, якщо потрібно повторно використовувати об'єкт CWinThread між послідовними створення і припинених потік страти.
Більш докладну інформацію про CWinThread, перегляньте статті Multithreading з C++ і MFC, Multithreading: створення інтерфейсу користувача теми, Multithreading: створення робочі потоки, і Multithreading: як використовувати синхронізації класи в Visual C++ програміста керівництво.
|&Nbsp членів класу ; Базовий клас | Ієрархічна діаграма
Зразок MFC зразок MTGDI
Дивіться також CWinApp, CCmdTarget