Господа,прошу помощи...
Проблема такая:
Есть приложение на базе SDI каркаса MFC где класс вид содержит в себе несколько диалоговых
окон.Одно из таких окон содержит в качестве переменной указатель на объект класса CListCtrl,
который создается в конструкторе.
Заполнение этого списка происходит в отдельном потоке(поскольку количество элементов очень
велико,а блокировать интерфейс плохо).
Поток создается функцией AfxBeginThread,которой в качестве параметра пересылается указатель
на список.
Вопрос:как корректно завершить поток досрочно, если пользователь решил закрыть
приложение.
Пытался сделать следующим образом:
Создавал обект CEvent g_eventStop,в цикле потока,
перед очередным занесением элемента в список,делал проверку типа
if(WaitForSingleObject(g_eventStop,0)==WAIT_OBJECT_0) return 0;
А в функции OnClose диалога:
CMyDialog: nClose()
{
g_eventStop.SetEvent();
WaitForSingleObject(хендл на поток,INFINITE);
CDialog: nClose();
}
Все работает,если сделать просто пустой цикл,если же вставлять там новый элемент в список,
то подвисаем.
Где ошибка и как исправить