none
Создание контекста в фоновом потоке C++ RRS feed

  • Вопрос

  • Приветствую! Дело у меня такое: есть основное окно, на одном из визуальных компонентов которого я хочу средерить контекст веб браузера. Получается два цикла обработки сообщение (для браузера и для окна), я создал второй поток, в котором произвожу все работы с браузером, однако возникает ошибка времени выполнения. Нужны ли какие-либод дополнительные телодвижения при использовании HWND из другого потока? Или ошибку стоит искать в другом месте? Спасибо.
    26 ноября 2015 г. 10:44

Ответы

  • Приложение GUI для Windows должно иметь только один цикл обработки сообщений в потоке главного окна (т.е. в потоке, создавшем главное окно приложения). И, по большому счёту, только этот поток вправе манипулировать дескрипторами окон. Хотя и дополнительные потоки могут отправлять окнам асинхронные сообщения (сообщения типа POST, но, ни в коем случае, не SEND, т.к. возникнет взаимоблокировки потоков). Но сами сообщения обрабатываются в едином цикле.

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


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    26 ноября 2015 г. 16:54