powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Длинный цикл - пропадает изображение контролов
16 сообщений из 16, страница 1 из 1
Длинный цикл - пропадает изображение контролов
    #32539983
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вот какой вопрос
В приложении при нажатии кнопки выполняется оочень длинный цикл (около 10 мин) В это время форма приложения как то странно себя ведёт (если например открыть другое окно и оно заслонит окно работающего приложения то потом форма становится просто белая без контролов) По завершении работы (т е после окончания цикла) всё становится на свои места Я думаю что это должно лечится командами для обновления изображения монитора... Если кто сталкивался с таким делом напишите как это исправить???
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32539986
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо дать форме отобразить себя.

На Visual Basic есть такая функция как DoEvent, Если её периодически вызывать в цикле, то окно будет отрисовываться.

...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540009
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо
Я тут от скуки накопал такое Me.Update
Попробовал - вроде получилось
Как думаете правильно это или нет?
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540067
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем. Такая строка просто обновит форму принудительно. Но проблме не в том что форума не хочет обновлятся, она не может , все сообщения для лаждого контрола и формы в целом становятся в очередь и ждут завершения цикла. Doevents предоставит возможность обработки этой очереди. Чем чаще тем больше обтаботок. ПОнатыкай его в самых медленных местах, вложенных циклах.

Magnus
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540101
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, всё так и есть, как сказано
Сделал так
Код: plaintext
1.
2.
3.
4.
5.
6.
For
  ...
  Application.DoEvents()
  Me.Update
  ...
Next
Me.Update мне тоже пришлось в ставить
Это позволило на форме отображать информацию из цикла в реальном времени
Код: plaintext
1.
2.
3.
4.
5.
6.
For each longstring as string in array
   ...  
   Application.DoEvents()
   Me.Update
   label1.text=longstring
   ...
Next
(может кому пригодится... Лично меня эта проблема 6 месяцев "колбасила")
ОГРОМНОЕ СПАСИБО
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540114
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//офф
автор
оочень длинный цикл (около 10 мин)

У меня есть циклы и по часу.

Тут, на каком-то форуме человек оговорился о цикле в 40 часов.
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540254
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMXO. Длинной циклов надо не мерятся а думать что с ней делать ибо ничто не вечно в этом и мире и видя ... эээ. я начинаю повторятся.

Вообщем это не очень хорошо.

Magnus
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540400
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, всё намного проще
Суть моего приложения: взять файл и скопировать его в нужное место с нужным именем
Количество файлов около 14000 а общий объём около 4.5 Гб (DVD матрица, последующая запись)
Длина цикла зависит от количества и объёма соответственно (чем больше - тем, дольше... можно довести и до часу, если пытаться обработать 27 Гб, только в этом нет необходимости)
Оптимизировать я и так старался (раньше было дольше 10 мин)
При моём небольшом общении с VB.NET мне подумалось, что это длинный цикл,
никакого пижонства с моей стороны в том что я посчитал его длинным НЕБЫЛО
P.S. Кстати, смысл в 40 часовых циклах я вообще не вижу... Мне кажется, в этом случае легче работу руками выполнить, не прибегая к VB.NET или т.п.
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32540898
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может и оптимизируем :).
ЗАкин основной кусок кода который работу делает.


Magnus
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32541552
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инфа - аллюр xxx (не комерческая, а государственная тайна)
С удовольствием бы закинул, да боюсь последствий...
Да и не к чему это - меня и всех окружающих устраивает 10 мин.
Хотя спасибо за предложенную помощь...
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32541922
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vladgrig
Читаем про треды в хелпе и не знаем таких проблем.

Код: plaintext
1.
2.
Dim Thread As New System.Threading.Thread(AddressOf [MySuperSub])
Thread.Start()

При этом весь цикл происходит в этой процедуре, а с формой можно делать что угодно.
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32541952
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем огромное
Всё и так заработало, и смасла (в моём случае) в создании выделенных процедур с дальнейшим вызовом при событии Button.Clic я не вижу
Если кто хочет помочь - лучше поделитесь, как сделать событие кнопки с "паузой" (и последующей возможностью продолжения) для такого рода циклов и (или) с прерыванием цикла (типа, аварийного выхода по требованию пользователя)
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32542048
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vladgrig
Аварийный выход по требованию также можно сделать через треды, а в отдельной процедуре проверять значение глобальной переменной типа boolean, т.е. имееим процедуру, в которой цикл и в нначале процедуры присваиваем переменной false, выход из цикла в случае значения true переменной. На форме кнопка stop, которая эту переменную переводит true - сразу получаем выход из цикла.
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32542156
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я тут тоже кое что уже накопал
Вопрос по созданию отдельного потока дико интересен (при этом методе можно и паузу сделать и тд)
Но, как всегда, но
http://]http://oz.by/books/more108084.html
стр. 502
"...Програмное обеспечение достаточно сложно написать хорошо - займитесь многопоточностью, и она может привести к плачевным результатам.
...Знайте, с чем вы собираетесь столкнуться. Используйте потоки только при необходимости. Ожидайте возникновения ошибок. Обращайтесь за помощью к более опытным разработчикам и не срывайте сроки разработки, надеясь на значительное увеличение быстродействия за счёт введения многопоточности. ..
...Вероятность возникновения ошибок можно снизить за счёт реорганизации кода, максимально возможным образом изолируя многопоточный код, и разработки планов работ на случай катострофического отказа в многопоточном коде."
И, тем не менее, будем вгрызыться - ибо ЦЕЛЬ оправдывает СРЕДСТВА...
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32749429
kalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так держать ! Русские не сдаются ! и т.д.
...
Рейтинг: 0 / 0
Длинный цикл - пропадает изображение контролов
    #32761335
Артём Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigзаймитесь многопоточностью, и она может привести к плачевным результатам.
...Знайте, с чем вы собираетесь столкнуться. Используйте потоки только при необходимости. Ожидайте возникновения ошибок. Обращайтесь за помощью к более опытным разработчикам и не срывайте сроки разработки, надеясь на значительное увеличение быстродействия за счёт введения многопоточности. ..
...Вероятность возникновения ошибок можно снизить за счёт реорганизации кода, максимально возможным образом изолируя многопоточный код, и разработки планов работ на случай катострофического отказа в многопоточном коде."
И, тем не менее, будем вгрызыться - ибо ЦЕЛЬ оправдывает СРЕДСТВА...

звучит как запугивание.
На самом деле при правильном использовании многопоточность является очень хорошим средством и в твоем случае - очень правильным решением. А что б тебе немного стало ясно о правильной реализации работы с потоками в .нет держи статью
http://www.gotdotnet.ru/LearnDotNet/NETFramework/604.aspx
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Длинный цикл - пропадает изображение контролов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]