21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
1 | |
Воспроизведение GIF в параллельном потоке20.11.2015, 22:22. Показов 7183. Ответов 91
Метки нет (Все метки)
Есть окно, информирующее пользователя о том что идет обработка данных. Поместил на форму GIF-картинку с часами.
Как сделать, чтобы часы шли?
0
|
20.11.2015, 22:22 | |
Ответы с готовыми решениями:
91
ProgressBar в параллельном потоке Таймер в параллельном потоке OpenGL в параллельном потоке Qt5 Выполнение процедуры в параллельном потоке |
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
25.11.2015, 19:22 [ТС] | 41 |
Потом я читал про потокобезопасные какие-то приемчики. Ну и скопировал от Microsoft решение. Может и Ваш вариант работает, только по моему метод Thread.Join решил проблему. Ошибка возникает при остановке потока, а не при запуске. Добавлено через 1 минуту Добавлено через 4 минуты
0
|
Модератор
4318 / 3392 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
||||||
25.11.2015, 19:27 | 42 | |||||
А потому что в момент выполнения shp2(false) принудительно закрывается форма и выгружается поток и только после этого происходит автоматическое прерывание потока - который уже запущен на прерывание - я вам об этом говорил. Я ж сказал - закомментируйте строки где идет речь об прерывании потока принудительно, а именно
Я тут как ьы вообще с телефона мобильного сижу... В отъезде я и компа со студией нету под рукой. Добавлено через 2 минуты А еще лучще вместо Th2.Abort() вставьте вызов закрытия формы Tme.Close()
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
25.11.2015, 19:27 [ТС] | 43 |
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
25.11.2015, 19:28 | 44 |
И исчезает под нажатой кнопки мышки?
С .join() та же история
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
25.11.2015, 19:35 [ТС] | 45 |
И ВООБЩЕ. Эти драные Микрософты. РАБОТАТЬ ДОЛЖНО В-С-Е ПО-ЧЕЛОВЕЧЕСКИ, а не один возможный вариант из сотни. Добавлено через 1 минуту Добавлено через 3 минуты
0
|
Модератор
4318 / 3392 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
25.11.2015, 19:54 | 46 |
При выгрузке потока через Abort.
Вобщем я уже сам запутался... А у Microsoft все хорошо работает, просто не торопиться и сесть проанализировать свой код, и найти ошибку - все в NET очень продуманно сделано на самом деле. Добавлено через 2 минуты И еще у вас .Joint вызывается после .Abort(). Для чего? Цитирую мелкомягких: Ведь вы его уже завершили вызовом метода .Abort()...
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
25.11.2015, 20:17 [ТС] | 47 |
Вот что говорит по этому поводу сама студия (2010): А вот это я не понимаю: Добавлено через 1 минуту Добавлено через 1 минуту Добавлено через 2 минуты В общем я понял так что Join блокирует основной поток, до окончания завершения вспомогательного (чтобы никто не вторгался и не мешал процедуре завершения)
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
25.11.2015, 23:52 | 48 |
Решииииил!!!!! На коком примере описать? на своем? =)
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
26.11.2015, 00:15 | 49 |
Еще раз при вызове окна, создается еще поток прорисовки, который .abort вырубить не может почему-то. Так вот я решил без этого метода
Я там прокомментировал что поменял. Банально тупо и просто вышло. WindowsApplication273.rar
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
26.11.2015, 03:09 [ТС] | 50 |
Sklifosofsky, я бы не сказал что получилось БАНАЛЬНО ТУПО.
Осталось 2 вопроса. 1. Если что-то происходит, но Вы не в курсах почему (Вы пишете ПОЧЕМУ-ТО) - это НЕ ЕСТЬ ХОРОШО. Потому что ситуация так сказать под контролем ровно до тех пор, пока Вы ПОНИМАЕТЕ что и как и почему РАБОТАЕТ. 2. Если окно закрывается, это еще не означает, что все проблемы решились. Оно у меня и раньше закрывалось, но вот беда, с сообщением об ошибке и последующем вылете программы в аут. Вобщем спасибо. Там кстати у Вас новые свойства появились (Thread.IsAlive, Thread.SetApartmentState и так далее - надо посмотреть). Но я пока оставлю свой последний вариант. Он ПОКА не глючил, а как известно, от добра добра не ищут. Добавлено через 2 минуты P.S. Я переделываю большущую программу с Visual FoxPro на VB.NET. Впереди еще работы немеряно. Поэтому не могу экспериментировать от души. Эта гонка уже утомила. А сколько еще тупиков впереди! Добавлено через 4 минуты И еще осталась неясность. VB ругается когда я пытаюсь свою формочку сделать MDIParent = Main. Что модальную форму нельзя сделать MDIParent = Main? Очень странно.
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
26.11.2015, 07:24 | 51 |
«Почемуто-то» - пишу потому, что не все так ясно, что происходит в методе ShowDialog() в отдельном потоке, как видите, результат перелается. Метод .abort не может остановить уже запущенное действие (event) связанное с прорисовкой и поэтому ошибка, когда пытаются прервать жтот момент. Thread.SetApartmentState параметр не обязательный, включает однопоточный или многопоточный режим. IsAlive показывает состояние запуска потока, true или false. Дело было в .abort , следовательно, если его нет, то и ошибки не должно быть. Я тестировал, в первом варианте при коротком интервале удовалось выбить ошибку как у вас, теперь ее нет.
1
|
Модератор
4318 / 3392 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
26.11.2015, 11:38 | 52 |
Ну благо хоть Sklifosofsky всеже понимает причину проблемы.
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|||||||||||
26.11.2015, 19:12 [ТС] | 53 | ||||||||||
Кто-то кажется писал:
А вообще, у меня последовательность
Добавлено через 51 минуту Ну вот, первый раз за два дня и это
Так как же все-таки ПРОДУМАННО И КОРРЕКТНО останавливать поток? Добавлено через 18 минут Sklifosofsky, перешел на твой последний вариант. Интересно, сколько он протянет без глюков. Предыдущий вопрос остается в силе. Добавлено через 9 минут Нет, Sklifosofsky, не работает. Под отладчиком вроде нормально работает. А как запускаю в обычном режиме (без отладчика) - форма с анимацией появляется и остается на экране до бесконечности, пока я в Диспетчере Windows не сниму процесс.
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
26.11.2015, 21:36 | 54 |
Код покажи. Я так и так тестировал... Есть еще 3-ий вариант, но там есть do While... loop.
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|||||||||||
26.11.2015, 21:49 [ТС] | 55 | ||||||||||
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
||||||
26.11.2015, 22:03 | 56 | |||||
А это требование выполнено, как у меня?
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
26.11.2015, 22:36 | 57 |
Предыдущий вопрос в силе... У меня без дебагера все работает, даже при засилии запуска окна.
Сегодня времени побольше, так вроде все продумал) Вариант с do While...loop WindowsApplication29.rar
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
|
26.11.2015, 23:03 [ТС] | 58 |
0
|
1080 / 911 / 212
Регистрация: 29.09.2015
Сообщений: 1,014
|
|
26.11.2015, 23:14 | 59 |
Не. Ну можно напрямую обратиться к форме, но при этом эффект будет другим.
0
|
21 / 22 / 10
Регистрация: 03.07.2014
Сообщений: 398
|
||||||
27.11.2015, 00:53 [ТС] | 60 | |||||
У меня обычное рабоче-крестьянское объявление формы:
0
|
27.11.2015, 00:53 | |
27.11.2015, 00:53 | |
Помогаю со студенческими работами здесь
60
Запуск функции в параллельном потоке Воспроизведение Gif анимации Воспроизведение gif анимации Воспроизведение gif-анимации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|