Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать чтоб форма не зависала? при выполнении длинного цикла 
:(
    Опции темы
fil2007
Дата 1.6.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.8.2007

Репутация: нет
Всего: нет



Доброго времени суток.
Когда у меня выполянется очень длительный цикл - форма подвисает.
Каким образом сделать так чтоб форма не подвисала и продолжала "принимать сообщения виндоус"?
PM MAIL   Вверх
QryStaL
Дата 1.6.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Запустить выполнение цикла в другом потоке.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
fil2007
Дата 1.6.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.8.2007

Репутация: нет
Всего: нет



Цитата(QryStaL @ 1.6.2008,  13:00)
Запустить выполнение цикла в другом потоке.

А можно примерчик?
PM MAIL   Вверх
Ch0bits
Дата 1.6.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



Ещё проще использовать компонент BackgroundWorker.
PM WWW   Вверх
Ram1reS
Дата 1.6.2008, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 25.4.2008
Где: Москва

Репутация: 3
Всего: 5



Цитата(fil2007 @ 1.6.2008,  17:12)
Цитата(QryStaL @ 1.6.2008,  13:00)
Запустить выполнение цикла в другом потоке.

А можно примерчик?

http://msdn.microsoft.com/en-us/library/8xs8549b.aspx
http://msdn.microsoft.com/en-us/library/sy...oundworker.aspx
--------------------
 
PM MAIL ICQ   Вверх
yar
Дата 1.6.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 8.9.2007
Где: Одесса, Украина

Репутация: нет
Всего: 8



Как вариант, можно попробовать в каждой итерации цикла вызывать Application.DoEvents.
--------------------
Если бы строители возводили здания так, как программисты пишут программы, первый же дятел уничтожил бы мировую цивилизацию.Джеральд Вайнберг
PM MAIL WWW   Вверх
QryStaL
Дата 1.6.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Цитата(yar @  1.6.2008,  21:19 Найти цитируемый пост)
можно попробовать в каждой итерации цикла вызывать Application.DoEvents

Вот этого не рекомендовал бы.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
jonie
Дата 1.6.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



QryStaL в случае до 10 сек цикла приемлемо (например прогрузка из базы данных)...
но опять же "не рекомендуется" )


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0741 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.