1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 133
1

Из одного потока запустить другой. Завершение первого не должно сказываться на работе второго

18.12.2012, 15:26. Показов 768. Ответов 4
Метки нет (Все метки)

Нужно из основного потока (а) вызвать определенный метод (файловый ввод\вывод, выполняется долго) (поток b) и затем закрыть основной поток (a), но что бы при этом поток (b) продолжал работу. Пробовал сделать с помощью асинхронных делегатов, потоков и пулов потоков - поток b уничтожается, как только отрабатывает поток a.
Посоветуйте пжст как сделать.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2012, 15:26
Ответы с готовыми решениями:

Как отследить завершение одного метода и по окончании его запустить другой
Как отследить завершение одного метода и по окончании его запустить другой?

Должно ли на скорости поворота сказываться ускорение/замедление?
Игра морская по пиратам. Выберете из пяти вариантов: 1. Можно управлять только скоростью хода, но...

От выбранного значения первого ComboBox должно зависеть содержание второго
Привет! Есть два combobox. На первом комбобоксе есть список городов. А на втором комбобоксе есть...

Завершение одного процесса, если другой процесс не обнаружен
Здравствуйте помогите пожалуйста сам не очень разбираюсь на надежда знающих людей которые не против...

4
1 / 3 / 2
Регистрация: 30.12.2010
Сообщений: 45
18.12.2012, 17:10 2
объясни зачем тебе второй поток?
если никак не обойтись без второго, сделай наоборот, пусть все делает дополнительный, а основной спит и ждет вызова нужного метода.
0
1 / 1 / 0
Регистрация: 26.07.2012
Сообщений: 133
18.12.2012, 17:17  [ТС] 3
первый должен вернуть управление внешним программным средствам и спать ему низя, иначе будет вылет по таймауту. Идея, соответственно, такая - поток а запускает b и возвращает управление, b делает все что нужно уже никуда не спеша.
0
1 / 3 / 2
Регистрация: 30.12.2010
Сообщений: 45
18.12.2012, 23:13 4
Цитата Сообщение от navab Посмотреть сообщение
поток а запускает b и возвращает управление, b делает все что нужно уже никуда не спеша
ну и пусть А возвращает управление и делает не спеша работу (потока Б). Зачем же тебе 2 потока?

ты грубо говоря хочешь запустить прогу,потом ее закрыть,но чтоб работа продолжалась. бессмысленно как-то.

Добавлено через 8 минут
ну а если поток Б начинает раньше чем поток А закончит, то А передав управление может спокойно спать до окончания работы потока Б.

не вижу проблемы
0
5 / 5 / 1
Регистрация: 09.12.2012
Сообщений: 14
19.12.2012, 04:48 5
Цитата Сообщение от navab Посмотреть сообщение
Нужно из основного потока (а) вызвать определенный метод (файловый ввод\вывод, выполняется долго) (поток b) и затем закрыть основной поток (a), но что бы при этом поток (b) продолжал работу. Пробовал сделать с помощью асинхронных делегатов, потоков и пулов потоков - поток b уничтожается, как только отрабатывает поток a.
Посоветуйте пжст как сделать.

Если идет речь о закрытии приложения(потока А) то для сохранения потока Б следует создать внешнее приложение, к которому уже обращаться из потока А.
Если идет речь не о завершении приложения, тогда не отвечать я так понимаю будет приложение, для винды будет определяться как зависшее, тут можно обойтись без потока А а в потоке Б реализовать вызов Application.DoEvents();
это вызовет ответ системе о том что приложение не зависло.
При этом приложение будет отслеживать и происходящие события и будет их обрабатывать прежде чем продолжить выполнять поток дальше. Вызов должен происходить примерно раз в секунду.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2012, 04:48
Помогаю со студенческими работами здесь

Клиент-сервер: Если запустить первый поток то он работает, при запуске второго потока выходит ошибка
Здравствуйте, пытаюсь разбить код на два потока. 1) Поток прием клиентов. void login_server()...

Передача данных из одного потока в другой
Всем привет, у меня такой вопрос, как можно передать данные из одного потока в другой, поясню: пишу...

Извлечение информации из одного потока в другой
Доброго времени суток, друзья! По заданию нужно создать 2 потока, в одном из которых будет ...

SIGNAL - SLOT из одного потока в другой
Как из gui-потока вызвать слот нового потока, в контексте нового потока? Допустим при нажатии...

Передача данных из одного потока в другой
Добрый вечер, Ранее я уже создавал тему и никто не смог внятно ответить, в чем суть вопроса: ...

Как передать данные из одного потока в другой?
Есть отдельный поток для чтения данных и основной поток для обработки данных. Из этого потока...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru