|
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
|
||||||
Как вызвать функцию по завершении работы потока29.02.2012, 12:33. Показов 10583. Ответов 10
Метки нет (Все метки)
Допустим мы запускаем какой то поток и нам надо вызвать какую нить функцию после завершение потока, как это сделать, если нам известен только метод вызова потока.
0
|
||||||
| 29.02.2012, 12:33 | |
|
Ответы с готовыми решениями:
10
QThread как очищать память при завершении работы потока? Как при завершении главного потока прерывать фоновые потоки? Уведомление о завершении потока |
|
84 / 84 / 10
Регистрация: 20.05.2011
Сообщений: 145
|
|
| 29.02.2012, 13:18 | |
|
Используйте BackgroundWorker.
0
|
|
|
|
||||||||||||||||||||||||||
| 29.02.2012, 18:58 | ||||||||||||||||||||||||||
|
Предположим BackgroundWorker не нужен, а этот вопрос появился при реализации какой-то специфической задачи.
Можно сделать что-то типа этого:
Только обратил внимание, в классе ThreadControl в методе OnComplete(ITask task) скорее всего нужна будет какая-то синхронизация, ведь в этот метод "полезут" все потоки.
0
|
||||||||||||||||||||||||||
|
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
|
|||||||
| 29.02.2012, 20:08 [ТС] | |||||||
|
Casper-SC, вы удалились от условия задачи .
0
|
|||||||
|
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
|
|
| 29.02.2012, 23:01 [ТС] | |
|
Дело в том что нам известен только один метод класса который реализует интерфейс ITask в котором только один метод, а других данных у нас нет и мы не можем другой класс подписать на событие заверщение, ведь событие завершение надо ставить в самом классе который реализует этот интерфейс, а вот чтобы сам экземпляр объекта Thread как то сообщал об окончании потока я не нашел.... можно либо по таймеру проверять о том что завершен поток или нет либо не использовать Thread а вместо него делегат, хотя не знаю думаю должен быть у Thread что то подобное но я как то не нашел
0
|
|
|
|
||||||||||||
| 29.02.2012, 23:17 | ||||||||||||
|
Я не пойму, разве нельзя сделать так?
Добавлено через 1 минуту
Добавлено через 6 минут Добавлено через 1 минуту Тоесть как я понял нельзя нам писать класс ConcreteTask, эти классы уже есть, а нужно подругому определять, что поток завершил работу? Ладно, если задача решена, то можно не продолжать диалог. Смысла нету.
0
|
||||||||||||
|
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
|
||
| 01.03.2012, 10:16 [ТС] | ||
|
0
|
||
|
fazanis31
|
|
| 01.03.2012, 10:29 | |
|
посмотрите здесьвсе в видео уроках
|
|
|
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
|
||||||
| 01.03.2012, 14:10 [ТС] | ||||||
|
если не иметь доступ к классу метод которого запускается из потока то никак нельзя в момент завершения потока вызвать какую то функцию, потому что на это нет события.
0
|
||||||
|
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
|
|
| 08.06.2015, 11:59 | |
|
Я правильно понял, что в основном потоке нет события или возможности отловить событие когда закончит работу рабочий поток?
Результат работы рабочего потока я получил в основном потоке, но мне нужно руками (buttonclick например) проверять и обрабатывать результат. В голову приходит только сделать таймер который каждую секунду будет спрашивать "а не поменялась ли переменная"... ЗЫ. Про BackgroundWorker вкурсе (пока учусь через new Thread)
0
|
|
| 08.06.2015, 11:59 | |
|
Помогаю со студенческими работами здесь
11
Многопоточность: вызвать метод главного потока из второстепенного потока Ошибка при завершении потока Как вызвать два потока одновременно При завершении потока программа вылетает Не очищается память при завершении потока Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|