|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
Воспроизведение GIF в параллельном потоке20.11.2015, 22:22. Показов 8836. Ответов 91
Метки нет (Все метки)
Есть окно, информирующее пользователя о том что идет обработка данных. Поместил на форму GIF-картинку с часами.
Как сделать, чтобы часы шли?
0
|
|
| 20.11.2015, 22:22 | |
|
Ответы с готовыми решениями:
91
ProgressBar в параллельном потоке
OpenGL в параллельном потоке Qt5 |
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 27.11.2015, 07:04 | |
|
0
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
||||||
| 27.11.2015, 16:12 [ТС] | ||||||
|
При запуске программы отрабатывает процедура:
0
|
||||||
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||||||||||||||||
| 27.11.2015, 19:47 | ||||||||||||||||
|
Извини, не туда смотрел, все верно. Проблема оказывается совсем в другом. Для второго варианта
И здесь тоже поменять. По порядку
0
|
||||||||||||||||
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
||||||||||||||||||||||
| 27.11.2015, 20:15 [ТС] | ||||||||||||||||||||||
|
Это менять не имеет смысла:
То же самое и здесь:
Вот я получаю Ошибку:
Добавлено через 3 минуты А почему тогда не вот так:
Кстати ДАВНО хотел написать вот что.
Потому что проверить наличие объекта в Net-е средствами NET-а НЕВОЗМОЖНО по причине видимо наличия супер умного сборщика мусора. Объект удаляется не тогда КОГДА ПРИКАЗЫВАЮ Я, а тогда когда ЗАХОЧЕТ УБОРЩИК МУСОРА. Поэтому после удаления объекта он некоторое неопределенное время продолжает спокойно себе существовать. И мне честно говоря не понятно что означает оператор Th2 = Nothing. Эту фигню я выяснил через неделю после начала освоения NET-а. На Visual FoxPro было все четко.
0
|
||||||||||||||||||||||
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 27.11.2015, 21:48 | |
|
В том что я написал, есть логика для избежания проблем, когда время задержки больше чем обработка. Попробуйте как я написал... Еще в запасе есть 3 вариант.
ПС я с телефона, много писать трудно Добавлено через 7 минут Про Th2_exist прекрасно знаю для чего используется, его можно расширенно использовать с небольшой переделкой
0
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|||||||||||
| 27.11.2015, 21:48 [ТС] | |||||||||||
|
Вы действительно правы в том, что перед началом остановки потока Th2 надо "обнулить" обслуживаемую процедуру Pic_Refr. Я об этом как-то не подумал.
Переделал свой второй вариант пока так:
То есть когда начнет работать Abort, процедура Pic_Refr будет пустой (за исключением Sleep). Это поможет, если прерывание, о котором сообщалось в ошибке, возникало именно в процедуре Pic_Refr.
0
|
|||||||||||
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 27.11.2015, 22:03 | |
|
Это переделка первого варианта? Есть сомнения, по поводу него. Второй (включая изменения) или третий считаю надежнее
0
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
| 27.11.2015, 23:24 [ТС] | |
|
У меня он по счету второй. Взял за основу решение с сайта Microsoft, гле данный способ объявлен потокобезопасным.
Если интересно, вот ссылка https://msdn.microsoft.com/en-... 10%29.aspx
0
|
|
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 28.11.2015, 00:08 | |
|
Как практика показала - хрен там безопасный. Лучше метод без .abort
1
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
| 28.11.2015, 01:54 [ТС] | |
|
Ладно, посмотрим.
0
|
|
|
Модератор
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
|
|
| 28.11.2015, 10:30 | |
|
А если вместо создания потока использовать Me.BeginInvoke()?
0
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|||
| 28.11.2015, 19:36 [ТС] | |||
Кстати, у меня тут и код из поста #66 заглючил - то же самое прерывание. Может это вообще какой-нибудь антивирус гадит. Была у меня ситуация на Visual FoxPro. Был очень большой проект - несколько тысяч файлов. Запускаю сборку - Fox выдает ошибку. Запускаю повторно - все в порядке. А случалось скорее всего вот что: все файлы, которые входили в состав проекта, видимо антивирус проверял (у меня Kaspersky), вклиниваясь в процесс сборки. И видимо некорректно вклинивался - блокируя файл на время проверки. А Fox этого не мог стерпеть и выдавал ошибку. Добавлено через 3 минуты
Может без Thread.Abort и лучше. Но может быть Yuri Komar, утверждающий ЧТО В NET-е ВСЕ ПРОДУМАНО И ПЕРЕДУМАНО - расскажет мне (и всем желающим) как в NET-е корректно останавливать потоки.
0
|
|||
|
Модератор
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
|
|
| 28.11.2015, 21:04 | |
|
Идеального варианта подходящего под абсолютно все слечаи - НЕТ, вы сами должны это понимать...
Ну а если так уж прям хочется, то можно попробовать использовать BeginInvoke... Но вы наверное быстрее сами начнете делать это. Ведь это ваш проект. Да и, если помните, вам Памирыч в саааамом насале еще предложил вариант сделать через Invoke и даже пример привел, а вы почему-то подумали что это вам не подходит и пошли другим путем, который оказался вроде как и неподходящий вовсе...
0
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
| 28.11.2015, 21:24 [ТС] | |
|
Да Памирыч приводил пример.
Но во-первых, он запускает два процесса. Сначала один, а из-под него второй - на рефреширование формы. А мне зачем два процесса-то стартовать - и так уже есть основной, в котором программа работает. А потом, оказалось, что все проблемы - при остановке рефреширования, а на эту тему Памирыч ничего не предложил в своем примере. Я имею в виду пост #6.
0
|
|
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
||
| 28.11.2015, 23:24 [ТС] | ||
А вот создателям Net-а действительно следовало бы думать ОБО ВСЕХ ВОЗМОЖНЫХ СЛУЧАЯХ. И если они включают метод Thread.Abort в состав системы, то он должен работать в любой ситуации. Или во всяком случае в описании все должно быть изложено, как им пользоваться. Но я же говорю, что адаптировал их же примеры. Почему же не работает и к тому же в такой простой ситуации. Кстати, на MSDN-е кот наплакал про Thread.Abort.
0
|
||
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|||||||||||
| 03.12.2015, 21:38 [ТС] | |||||||||||
|
Вот, Памирыч, все вроде сделал по Вашему совету:
0
|
|||||||||||
|
Модератор
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
|
|||||||||||
| 03.12.2015, 21:51 | |||||||||||
|
Ivan215, здесь
0
|
|||||||||||
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||||||
| 03.12.2015, 21:51 | ||||||
|
В моем понимании как поток с...
0
|
||||||
|
Модератор
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
|
|
| 03.12.2015, 21:56 | |
|
Sklifosofsky прав однако тут диалог вызывать надо... и заменить .Hide на DialogResult.OK
0
|
|
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 03.12.2015, 21:59 | |
|
Меня немного осенило с инвком... но только с do .... loop опять же
P.S. этот не тот вариант, который я недавно в соседней теме предложил=)
0
|
|
| 03.12.2015, 21:59 | |
|
Выполнение процедуры в параллельном потоке
Воспроизведение Gif анимации
Воспроизведение gif-анимации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|