Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1

Перенаправление выполнения с одного потока в другой. Не UI потоки

14.12.2015, 20:35. Показов 1080. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Знает кто-нибудь, как такое можно осуществить? Признаюсь, не сильно копал в эту сторону, но интересует. Можно посмотреть, конечно, исходники последнего дотнета, как там SynchronizationContext в WPF и Windows Forms реализован, но что-то мне подсказывает, что это немного не то. Я и сам копну в эту сторону, если что дельное найду, то отпишу. А если кто уже знает, как это можно сделать, то хотел бы увидеть/узнать.

Зачем это надо? Напрягает ставить локи где ни попадя, чтобы не было с разных потоков одновременных обращений к общему ресурсу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2015, 20:35
Ответы с готовыми решениями:

Мьютексы-потоки: Как задать время выполнения потока
Подскажите пожалуйста насчет следующих вопросов, сам не разобрался. 1. Как задать время выполнения потока? 2. Как заставить потоки...

Перенаправление с одного домена на другой
Здравствуйте! Есть продвигаемый сайт с одним доменом www.site.ru, с этим сайтом была проблема, связанная с не очень хорошей видимостью...

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

7
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.12.2015, 21:37
Casper-SC, насколько я могу судить, винформы запускаются в STAThread, поэтому мы перенаправляем многопоток в основной, чтобы оконная процедура нормально отрабатывала. То есть это костыль для работы конкретно UI, в качестве синхронизации это отстойная идея так выполнять: Slim-мьютексы практически не требуют ресурсов ибо срабатывают на уровне приложения и не производят захвата системного объекта. Перенаправлять вызов в специальный поток намного дольше и имхо менее архитектурно правильно.
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
14.12.2015, 22:47  [ТС]
Psilon, я уже тоже вычитал, что неправильно и т.д. Ну значит не буду заморачиваться этой затеей.

Добавлено через 2 минуты
Psilon, только, зачастую, слим классы синхронизации потоков мне не доступны. На работе .NET 3.5 ибо оживили пылившийся древний проект. Но обещают через пару месяцев перевести всё на .NET 4.5.

Добавлено через 2 минуты

Не по теме:

Это так, к слову. Мне в основном-то реально пригождался пока только AutoResetEvent.

0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.12.2015, 00:04
Casper-SC, слимы это то же самое, но они не захватывают системный объект если не нужно.
Вот отличная статья на тему. Использовать Slim стоит всегда, когда только есть возможность. Это аналогично совету использовать List<T> вместо ArrayList. Для существования последнего нет ни единой причины кроме обратной совместимости. Соответственно пользовать не-slim блокировками стоит только если они недоступны из-за старой версии фреймворка.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.12.2015, 00:37
Цитата Сообщение от Casper-SC Посмотреть сообщение
как такое можно осуществить?
Механизм однопоточных апартаментов в целом реализуется примерно так: где-то запущен отдельный "рабочий" поток, который бесконечно мониторит очередь делегатов и выполняет их по мере получения, а через метод Invoke (например) в эту очередь добавляются делегаты с заданиями.
Приоритеты выполнения прикручиваются по желанию.
Примерно так и реализован STAThread в шарпе.

Цитата Сообщение от Psilon Посмотреть сообщение
винформы запускаются в STAThread, поэтому мы перенаправляем многопоток в основной, чтобы оконная процедура нормально отрабатывала. То есть это костыль для работы конкретно UI
Это вы механизм поточных апартаментов костылем обложили или перенаправление в гуишный поток?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.12.2015, 01:05
Цитата Сообщение от kolorotur Посмотреть сообщение
Это вы механизм поточных апартаментов костылем обложили или перенаправление в гуишный поток?
Ну использования апартаментов я в других случаях я не видел, так что затрудняюсь сказать.
Есть по крайнее мере одно поле, посреди которого пасется по крайней мере одна овца, у которой по крайней мере одна сторона черная ©
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.12.2015, 01:17
Цитата Сообщение от Psilon Посмотреть сообщение
Ну использования апартаментов я в других случаях я не видел
Так COM же. Собственно, у этой идеи оттуда ноги и растут.
Это скорее компромисс, а не костыль
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.12.2015, 01:53
kolorotur, не так много с COM работал, .Net-оберткок вроде System.Managment обычно хватает.

Цитата Сообщение от kolorotur Посмотреть сообщение
Это скорее компромисс, а не костыль
Ну, не буду возражать против альтернативного именования
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2015, 01:53
Помогаю со студенческими работами здесь

Перенаправление в .htaccess с одного домена на другой
Здравствуйте! Есть 2 домена (site.com, site2.com) по которым открывается один сайт из одной директории. Задача чтобы все с домена...

Перенаправление с одного сайта на другой на шлюзе
Пример. Закончился инет, при наборе любого адреса в браузере, открывается сайт провайдера. Как это сделано? Средствами *nix или внешней...

Потоки. Как из одного потока вызвать выполнение метода в другом потоке
Необходимо 50 раз в секунду выполнять методы в двух параллельно работающих потоках синхронизировано. Для этого я создал третий поток -...

Перенаправление всего что можно с одного адреса на другой
Ситуация: имеется virtual box, с установленной кастомизированным red hat. В virtual box настроены два сетевых адаптора: NAT(10.0.2.15) и...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru