В настоящее время я работаю над программой, использующей MFC.Текущая сторонняя функция запускает поток после того, как действие было выполнено с использованием MFC (т.е. проверка флажка, который запускает поток MFC, я полагаю).
Проблема возникает, когда я проверяю флажок, и в этот моментвся программа зависает.Я прочитал несколько интересных дискуссий по CProgramming и msdn, похоже, что проблема возникает из-за того, что новый сторонний поток вызывает WaitToSomething (), когда MFC обновляет элемент управления.
Что-то интересное, чтобы отметить:
- Когда я отлаживаю программу, она зависает (или многократно вызывает WaitToRead ()) после того, как я установил флажок, и новый поток пытается запустить
- Когда я запускаю программу без отладчика,программа в порядке, пока я не переключусь в другое окно (например, интернет-браузер, блокнот и т. д.)
Моя гипотеза:
- проверьте, чтобы убедиться, что MFC завершил обновлениеконтроль перед началом новой темы
Если у кого-то есть предложения или решения, пожалуйста, оставьте комментарий.Спасибо.
Редактировать:
MFC не является поточно-ориентированным на уровне объекта (только на уровне класса), поэтому проблема возникает, когда два потока работают с одним и тем же объектом CButton.
Q: Как я могу сделать это потокобезопасным?