Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передать GenereicPrincipal между threads / 8 сообщений из 8, страница 1 из 1
17.02.2004, 17:40
    #32412516
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
буду благодарен если кто то вкратце подскажет как правильно было бы устроить передачу принципала между фредами... нужно в одной нити назначить CurrentPrincipal принципал который создается в другой нити. я не нашел ничего более подходящего чем Thread.CurrentPrincipal но он static и получается надо синхронизировать нити и пересылать объект принципала в соседнюю нить. мне бы не хотелось это делать ибо я мультифредом не знаимался лет 5 и не очень хорошо представляю как оно работает особенно в .нете - там они усовершенствовали парадигму и мне там учить и учить а времени нет. задачка локальная пока и можно обойтись без понимания процесса :) пока...
...
Рейтинг: 0 / 0
17.02.2004, 20:41
    #32412692
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
Простите если не в тему, но не является ли CurrentPrincipal аттрибутом процесса, а не нити внутри процесса? То есть не имеют ли все нити внутри одного и того же процесса один и тот же CurrentPrincipal? Не помню сейчас точную сигнатуру Win32 CreateThread, но точно помню что по дефолту новая нить там создавалась в том же security context, что и нить её породившая.
...
Рейтинг: 0 / 0
18.02.2004, 14:15
    #32413619
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
точно нет т.к. вопервых Thread.CurrentPrincipal используется для его получения или установки и по доке он разный для каждого из тредов. но кроме того я проверил это экспериментально. видимо каждый тред наследует от процесса но потом внутри можно установить что хошь. что собственно я и делаю в одном треде а второй является листенером и при наступлении некоторого события принципал должен измениться в первом треде. вот собственно и все.

сам принципал можно передать через DataSlot а вызвать первый через делегата. но я никогда этого не делал и хотел найти путь попроще...

в этом и был вопрос.
...
Рейтинг: 0 / 0
18.02.2004, 16:06
    #32413929
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
Последнее сообщение - не читать - чушь собачья.

действительно один принципал на всех. а мой эксперимент как я теперь понял - доказал оказывается что (что в принципе то очевидно но я не врубился сразу) - MSMQ вызывает метод из моего процесса через делегата который я ему же и дал и получается что при асинхронном чтении из очереди метод который читает сообщение из очереди - выполняется в контексте чего то другого - видимо msmq.

теперь вообще не ясно что с этим делать... надо что то почитать наверное...
...
Рейтинг: 0 / 0
18.02.2004, 16:31
    #32413992
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
блин, читал я где-то про передачу принципала от процесса к процессу, а где - хоть убейте, не помню :(

Полуэкт, а поподробнее, зачем вся эта бодяга, если не секрет?
...
Рейтинг: 0 / 0
19.02.2004, 12:50
    #32415099
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
блин знал бы зачем сказал бы :)

херня это все натуральная. но партия сказала надо значит надо.

суть в том что использовать msmq для организации обратной связи от клиента к ремотинговому серверу. поскольку умные люди говорят что ремотинговые ивенты не работают а также рекомендовали мсмкью то я теперь этот бред должен воплотить в жизнь.

клиенты шлют серверу сообщения - мы обновили там такой то тип или там общий датасет (там список стран типа валют работников и пр). все эти общие данные имеет каждый клиент по копии у себя. причем все объеденено в объект где напихано черти что бл№;%%:. там и arraylist sortedarray hashtable с массивами собственного типа и датасет еще впридачу.видимо все это писалось до меня программерами-неудачниками причем такое впечатление что их было 10. надо короче по изменении одним клиентом что то в этой бодяге - передать другим клиентам сообщение - обновите эту фигню. ну собсно и все. теперь надо пыхтеть как еще заставить красиво обновляться по частям а не тянуть весь объект каждый раз. но на мой взгляд это полный бред. и к тому же дополнительная дырка в безопасности т.к. никто у нас тут в секурити не понимает.

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

да - а нужен принципал потому что тот принципал что я устанаваливаю при логине юзера - то же может поменяться по дороге - например роль у юзера могут отбрать или наоборот наградить новой ролью... типа все это конечно разумно но при той степени идиотизма уже заложенной в проекте на мой взгляд это лишнее все....
...
Рейтинг: 0 / 0
19.02.2004, 12:57
    #32415127
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
ясно. скрестили ёжика с удавом :)
...
Рейтинг: 0 / 0
19.02.2004, 13:43
    #32415275
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передать GenereicPrincipal между threads
хуже ;)

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

просто кое кому надо написать на всех столбах - я типа проектировал мсмкью вот и все дела.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передать GenereicPrincipal между threads / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]