Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2016, 23:39   #1
PresnovEA
 
Регистрация: 05.05.2016
Сообщений: 3
По умолчанию создать пустой проект и реализовать в нем приложение, порождающее несколько основных потоков и управляющий логикой приложений

Доброго времени суток.
На данный момент изучаю аспекты многопоточности, в связи с чем возник вопрос, в большей степени теоретический.

Существует задача: необходимо создать пустой проект и реализовать в нем приложение, порождающее несколько основных потоков - поток, управляющий логикой приложения и поток графического интерфейса. Идея в том, чтобы поток, выполняющий логику, был основным и, в частности, порождал поток графического интерфейса, при необходимости, управляя графическими элементами.
Мне не хватает теоретической базы и, возможно, понимания основных аспектов.
Графическая часть на WPF. Тут проблем особенных не возникло. Создал Thread, указал ему апартмент STA, указал Dispatcher`у этот поток, и все заработало.
Основной вопрос в том, как создать поток, управляющий логикой приложения таким образом, чтобы он существовал на протяжении жизни всего приложения. Допускаю, что такой поток будет практически все время ожидать каких-либо действий, но необходимо, чтобы он сущестовал. Например, поток того же графического интерфейса выполняется до тех пор, пока функционирует сам интерфейс, но в данном случае он является порождаемым и не должен служить основным потоком выполнения.
В литературе, которую смог найти, все указывает на то, что поток порождается для выполнения указанных действий, выполнив которые, он заканчивает свою работу.
Как сделать так, чтобы поток порождался и грубо говоря "висел", ожидая обработки каких-либо действий?
В какую сторону необходимо думать? Что почитать, помимо основ программирования?

Если что-то неясно, перефразирую и конкретизирую.
Большое спасибо)
PresnovEA вне форума Ответить с цитированием
Старый 06.05.2016, 11:11   #2
PresnovEA
 
Регистрация: 05.05.2016
Сообщений: 3
По умолчанию

Граждане, если я не правильно думаю,просьба подсказать.
Не такая сложная вещь-то вроде...
PresnovEA вне форума Ответить с цитированием
Старый 06.05.2016, 11:31   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем делать UI поток не основным?

А чтоб висел и ждал вместо завершения надо просто это и сделать. Например какой-нибудь бесконечный цикл ожидающий команды или периодически проверяющий ее наличие.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.05.2016, 13:54   #4
PresnovEA
 
Регистрация: 05.05.2016
Сообщений: 3
По умолчанию

Цитата:
Зачем делать UI поток не основным?
Такова задача. Основным потоком должен быть поток, реализующий вычисления. Он осуществляет подключение к контракту службы WCF и получает необходимые данные оттуда.
Гуевый же поток порождается при необходимости, отражает результаты (если необходимо) и не является основным.
Вот я и пытаюсь понять от чего начать плясать. И сдается мне что тут что-то до глупости простое.
PresnovEA вне форума Ответить с цитированием
Старый 06.05.2016, 14:39   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А проблема-то в чем если
Цитата:
Создал Thread, указал ему апартмент STA, указал Dispatcher`у этот поток, и все заработало.

Для создания не завершающегося потока ожидающего команд (или что он делать должен) не надо никаких особых действия кроме продумывания что и как именно он должен делать и реализации этого.
Для обращения к UI оттуда можно использовать например Dispatcher.CurrentDispatcher.Invoke/BeginInvoke
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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