Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
37 / 35 / 7
Регистрация: 18.04.2009
Сообщений: 435

MVC в многопоточном приложении

09.06.2024, 13:46. Показов 544. Ответов 3
Метки c#, mvc (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток!

Реализовываю паттерн MVC в Windows Form приложении.
Модель и Представления работают в разных потоках.
Представление наблюдатель за Моделью.
Модель обменивается с некоторыми устройствами данными в своём потоке.
И когда получает определённые данные вызывает метод обновления своих наблюдателей (представлений).

Затык в том, что нельзя изменить компоненты формы из другого потока.
Поэтому использую вызов делегата через методом Invoke формы (представления).

Подскажите как правильно все организовать?
Как правильно организовывается взаимодействие представления и модели, если они выполняются в разных потоках?
Может у кого есть примеры кода?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2024, 13:46
Ответы с готовыми решениями:

Зависание формы в многопоточном приложении
Господа хорошие, помогите, пожалуйста. Пишу наземную станцию управления дрона для своего проекта. Никогда на шарпе не писала, привыкла...

События в MVC приложении
http://webfile.ru/6371347 - ссылка на солюшн 2012 Помогите пожалуйста разобраться с событиями, а именно: 1. Как описать типы...

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

3
Эксперт .NET
 Аватар для Rius
13165 / 7725 / 1679
Регистрация: 25.05.2015
Сообщений: 23,539
Записей в блоге: 14
09.06.2024, 14:30
Invoke же работает? Пользуйтесь.

Если интересно что-то заметно отличающееся, можете попробовать https://www.nuget.org/packages... .WinForms/
0
37 / 35 / 7
Регистрация: 18.04.2009
Сообщений: 435
09.06.2024, 15:08  [ТС]
Работает конечно. Но возникают проблемы если представлений несколько. Контроллер создаёт новую форму (представления), она подписывается на модель. При закрытии формы отписываемся от модели. Но через раз появляются исключения что идёт обращение к уничтоженному объекту.
0
Эксперт .NET
 Аватар для Rius
13165 / 7725 / 1679
Регистрация: 25.05.2015
Сообщений: 23,539
Записей в блоге: 14
09.06.2024, 17:29
Цитата Сообщение от mutex Посмотреть сообщение
появляются исключения что идёт обращение к уничтоженному объекту
В очереди сообщений находятся необработанные события. Когда до них доходит очередь, они вызываются, обращаются к окну, а оно (внезапно!) уничтожено.
Научитесь это обрабатывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2024, 17:29
Помогаю со студенческими работами здесь

Ошибка STAThreadAttribute в многопоточном приложении
Получил ошибку "Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что...

Правильная блокировка кода в многопоточном приложении
Есть приложение, работающее многопоточно с очередями. Т.е. В очереди добавляются элементы, но вот беда - без блокировок летят исключения,...

Выполнение метода в одном потоке в многопоточном приложении
Добрый день Есть приложение, которое в многопоточном режиме через HttpClient запрашивает данные с разных серверов Эти сервера...

Как правильно организовать работу с переменными в многопоточном приложении
Здравствуйте. Вот такой код: int min = 1, max = 1000; private void main() { for(int i=0;i<10;i++) { Thread th = new...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru