Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 31.03.2012, 07:11   #1
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 197
Репутация: 14
Радость Зависание

Работаю в VS 6, проект MFC добавляю листбокс и прогресс бар, делаю цикл, который добавляет в листбокс 1млн. чисел. Первые несколько секунд программа считает, потом компьютер начинает "думать", что программа зависла, хотя на самом деле - нет.
Как можно избавиться от такой проблемы?
alexey_kip вне форума   Ответить с цитированием
Старый 31.03.2012, 07:15   #2
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 197
Репутация: 14
По умолчанию

В конце концов он результат выводит, но пока вычисляет - программа считается зависшей
alexey_kip вне форума   Ответить с цитированием
Старый 31.03.2012, 08:20   #3
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,840
Репутация: 6850
По умолчанию

От такой проблемы можно избежать используя потоки.
Научись работать в Си с потоками и будет тебе счастье.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 31.03.2012, 08:46   #4
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 197
Репутация: 14
По умолчанию

А чуть конкретнее можно? С какими потоками?
alexey_kip вне форума   Ответить с цитированием
Старый 31.03.2012, 09:36   #5
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 197
Репутация: 14
По умолчанию

на AfxBeginThread(MyFunction, NULL);
выдает ошибку error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
alexey_kip вне форума   Ответить с цитированием
Старый 31.03.2012, 12:51   #6
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

Есть другой вариант - обрабатывать сообщения ОС во время выполнения расчетов. Не так, конечно, фэншуйно, как с потоками, и отчасти коряво, но все-таки проще в реализации. В билдере (и вообще в библиотеке VCL, что родом из дельфей) для этого есть функция-член класса TApplication - ProcessMessages(). В MFC такого нет, но гугль выдал такой вариант замены:
Код:
void DoProcessMessages(void){
 while (true)
 {
	MSG m_msgCur;	
	while (!::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE)) 
	{
		return;
	}
	if (!::GetMessage(&m_msgCur, NULL, NULL, NULL)) break;
	::TranslateMessage(&m_msgCur); 
	::DispatchMessage(&m_msgCur);
 }
}
Соответственно, вставлять в код расчетов, скажем, каждые 1000 или 10.000 итераций.
__________________
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума   Ответить с цитированием
Старый 31.03.2012, 16:27   #7
alexey_kip
Форумчанин
 
Регистрация: 19.11.2011
Сообщений: 197
Репутация: 14
По умолчанию

Спасибо, работает, но если запустить на выполнение программу и закрыть, то она висит в процессах
alexey_kip вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависание программы. kardinal94 Общие вопросы Delphi 2 23.08.2010 17:36
Зависание компьютера RockForr Железо 10 19.08.2010 11:46
зависание DeDoK Работа с сетью в Delphi 7 17.08.2010 09:56
Непонятное зависание. DIMANJ Операционные системы общие вопросы 20 18.11.2009 18:08
Зависание JRcoker Общие вопросы Delphi 8 06.08.2008 08:29


17:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.