Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
буду благодарен если кто то вкратце подскажет как правильно было бы устроить передачу принципала между фредами... нужно в одной нити назначить CurrentPrincipal принципал который создается в другой нити. я не нашел ничего более подходящего чем Thread.CurrentPrincipal но он static и получается надо синхронизировать нити и пересылать объект принципала в соседнюю нить. мне бы не хотелось это делать ибо я мультифредом не знаимался лет 5 и не очень хорошо представляю как оно работает особенно в .нете - там они усовершенствовали парадигму и мне там учить и учить а времени нет. задачка локальная пока и можно обойтись без понимания процесса :) пока... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 17:40 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
Простите если не в тему, но не является ли CurrentPrincipal аттрибутом процесса, а не нити внутри процесса? То есть не имеют ли все нити внутри одного и того же процесса один и тот же CurrentPrincipal? Не помню сейчас точную сигнатуру Win32 CreateThread, но точно помню что по дефолту новая нить там создавалась в том же security context, что и нить её породившая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 20:41 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
точно нет т.к. вопервых Thread.CurrentPrincipal используется для его получения или установки и по доке он разный для каждого из тредов. но кроме того я проверил это экспериментально. видимо каждый тред наследует от процесса но потом внутри можно установить что хошь. что собственно я и делаю в одном треде а второй является листенером и при наступлении некоторого события принципал должен измениться в первом треде. вот собственно и все. сам принципал можно передать через DataSlot а вызвать первый через делегата. но я никогда этого не делал и хотел найти путь попроще... в этом и был вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 14:15 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
Последнее сообщение - не читать - чушь собачья. действительно один принципал на всех. а мой эксперимент как я теперь понял - доказал оказывается что (что в принципе то очевидно но я не врубился сразу) - MSMQ вызывает метод из моего процесса через делегата который я ему же и дал и получается что при асинхронном чтении из очереди метод который читает сообщение из очереди - выполняется в контексте чего то другого - видимо msmq. теперь вообще не ясно что с этим делать... надо что то почитать наверное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 16:06 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
блин, читал я где-то про передачу принципала от процесса к процессу, а где - хоть убейте, не помню :( Полуэкт, а поподробнее, зачем вся эта бодяга, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2004, 16:31 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
блин знал бы зачем сказал бы :) херня это все натуральная. но партия сказала надо значит надо. суть в том что использовать msmq для организации обратной связи от клиента к ремотинговому серверу. поскольку умные люди говорят что ремотинговые ивенты не работают а также рекомендовали мсмкью то я теперь этот бред должен воплотить в жизнь. клиенты шлют серверу сообщения - мы обновили там такой то тип или там общий датасет (там список стран типа валют работников и пр). все эти общие данные имеет каждый клиент по копии у себя. причем все объеденено в объект где напихано черти что бл№;%%:. там и arraylist sortedarray hashtable с массивами собственного типа и датасет еще впридачу.видимо все это писалось до меня программерами-неудачниками причем такое впечатление что их было 10. надо короче по изменении одним клиентом что то в этой бодяге - передать другим клиентам сообщение - обновите эту фигню. ну собсно и все. теперь надо пыхтеть как еще заставить красиво обновляться по частям а не тянуть весь объект каждый раз. но на мой взгляд это полный бред. и к тому же дополнительная дырка в безопасности т.к. никто у нас тут в секурити не понимает. т.е. в принципе все это выполнимо и я седня уже начал паять эту парашу. но с принципалом там все сложнее. как оказалось установка принципала при запуске приложения влияет только на главный тред. а вызов метода из мсмкью как оказалось создает автоматом другой тред и там принципал по умолчанию т.е. пустой почти. короче потерял целый день пока раскопал это дерьмо. передавать то передаю я этот принципал но тем не менее простого способа заставить главный тред прочитать этот принципал - не придумал пока. да - а нужен принципал потому что тот принципал что я устанаваливаю при логине юзера - то же может поменяться по дороге - например роль у юзера могут отбрать или наоборот наградить новой ролью... типа все это конечно разумно но при той степени идиотизма уже заложенной в проекте на мой взгляд это лишнее все.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 12:50 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
ясно. скрестили ёжика с удавом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 12:57 |
|
||
|
Передать GenereicPrincipal между threads
|
|||
|---|---|---|---|
|
#18+
хуже ;) представь приходит чувак из отпуска а у него в очереди 5000 сообщений. он включает приложение а оно полчаса читатет очередь. он нервничает начинает его перегружать дергать штепсель очередь виснет админы в панике... бред полный.. просто кое кому надо написать на всех столбах - я типа проектировал мсмкью вот и все дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 13:43 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32412516&tid=1439545]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 363ms |

| 0 / 0 |
