|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
Воспроизведение GIF в параллельном потоке20.11.2015, 22:22. Показов 8574. Ответов 91
Метки нет (Все метки)
Есть окно, информирующее пользователя о том что идет обработка данных. Поместил на форму GIF-картинку с часами.
Как сделать, чтобы часы шли?
0
|
|
| 20.11.2015, 22:22 | |
|
Ответы с готовыми решениями:
91
ProgressBar в параллельном потоке
OpenGL в параллельном потоке Qt5 |
|
1086 / 916 / 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
|
||||||
|
1086 / 916 / 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
|
||||||||||||||||||||||
|
1086 / 916 / 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
|
|||||||||||
|
1086 / 916 / 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
|
|
|
1086 / 916 / 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
|
|
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|
| 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
|
|||
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|
| 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
|
|||||||||||
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|||||||||||
| 03.12.2015, 21:51 | |||||||||||
|
Ivan215, здесь
0
|
|||||||||||
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||||||
| 03.12.2015, 21:51 | ||||||
|
В моем понимании как поток с...
0
|
||||||
|
Модератор
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
|
|
| 03.12.2015, 21:56 | |
|
Sklifosofsky прав однако тут диалог вызывать надо... и заменить .Hide на DialogResult.OK
0
|
|
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 03.12.2015, 21:59 | |
|
Меня немного осенило с инвком... но только с do .... loop опять же
P.S. этот не тот вариант, который я недавно в соседней теме предложил=)
0
|
|
| 03.12.2015, 21:59 | |
|
Выполнение процедуры в параллельном потоке
Воспроизведение Gif анимации
Воспроизведение gif-анимации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|