|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.05.2016, 23:39 | #1 |
Регистрация: 05.05.2016
Сообщений: 3
|
создать пустой проект и реализовать в нем приложение, порождающее несколько основных потоков и управляющий логикой приложений
Доброго времени суток.
На данный момент изучаю аспекты многопоточности, в связи с чем возник вопрос, в большей степени теоретический. Существует задача: необходимо создать пустой проект и реализовать в нем приложение, порождающее несколько основных потоков - поток, управляющий логикой приложения и поток графического интерфейса. Идея в том, чтобы поток, выполняющий логику, был основным и, в частности, порождал поток графического интерфейса, при необходимости, управляя графическими элементами. Мне не хватает теоретической базы и, возможно, понимания основных аспектов. Графическая часть на WPF. Тут проблем особенных не возникло. Создал Thread, указал ему апартмент STA, указал Dispatcher`у этот поток, и все заработало. Основной вопрос в том, как создать поток, управляющий логикой приложения таким образом, чтобы он существовал на протяжении жизни всего приложения. Допускаю, что такой поток будет практически все время ожидать каких-либо действий, но необходимо, чтобы он сущестовал. Например, поток того же графического интерфейса выполняется до тех пор, пока функционирует сам интерфейс, но в данном случае он является порождаемым и не должен служить основным потоком выполнения. В литературе, которую смог найти, все указывает на то, что поток порождается для выполнения указанных действий, выполнив которые, он заканчивает свою работу. Как сделать так, чтобы поток порождался и грубо говоря "висел", ожидая обработки каких-либо действий? В какую сторону необходимо думать? Что почитать, помимо основ программирования? Если что-то неясно, перефразирую и конкретизирую. Большое спасибо) |
06.05.2016, 11:11 | #2 |
Регистрация: 05.05.2016
Сообщений: 3
|
Граждане, если я не правильно думаю,просьба подсказать.
Не такая сложная вещь-то вроде... |
06.05.2016, 11:31 | #3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Зачем делать UI поток не основным?
А чтоб висел и ждал вместо завершения надо просто это и сделать. Например какой-нибудь бесконечный цикл ожидающий команды или периодически проверяющий ее наличие.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
06.05.2016, 13:54 | #4 | |
Регистрация: 05.05.2016
Сообщений: 3
|
Цитата:
Гуевый же поток порождается при необходимости, отражает результаты (если необходимо) и не является основным. Вот я и пытаюсь понять от чего начать плясать. И сдается мне что тут что-то до глупости простое. |
|
06.05.2016, 14:39 | #5 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А проблема-то в чем если
Цитата:
Для создания не завершающегося потока ожидающего команд (или что он делать должен) не надо никаких особых действия кроме продумывания что и как именно он должен делать и реализации этого. Для обращения к UI оттуда можно использовать например Dispatcher.CurrentDispatcher.Invoke/BeginInvoke
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi XE6 не компилируется пустой проект | Vetriti | Общие вопросы Delphi | 7 | 27.06.2014 17:50 |
возникла необходимость создать несколько потоков | Farrel | Win Api | 4 | 19.09.2011 23:04 |
Логгирование, несколько потоков | pa6kevi4 | Общие вопросы .NET | 3 | 12.06.2010 22:32 |
Пустой проект в Билдере | ds.Dante | Общие вопросы C/C++ | 6 | 10.03.2010 15:59 |
Несколько потоков | Adm | Общие вопросы Delphi | 13 | 18.01.2008 20:04 |