#c# #ipc #mutex #semaphore
#c# #ipc #мьютекс #семафор
Вопрос:
Я пытаюсь заставить процесс A отправить массив в процесс B и решил, что сделаю это через IPC. Мне удалось заставить все работать до тех пор, пока они не получат доступ к одному и тому же файлу, отображенному в памяти.
После прочтения различных способов сделать это я обнаружил, что мьютексы и семафоры наилучшим образом подходят, не полагаясь на стороннее программное обеспечение. Но главное в том, что процесс A — это приложение, которое нельзя запустить с правами администратора, а процесс B — это служба Windows, работающая в локальной системной среде. Итак, я попытался создать глобальные мьютексы и семафоры, но они, похоже, не сокращают его. потому что для этого требуются права администратора для доступа из моего пользовательского приложения.
Итак, как можно создать мьютекс или семафор для такой ситуации?
Заранее приношу извинения за мой английский и формат вопросов (первый постер).
Комментарии:
1. Вы могли бы поместить части процесса A, которые должны использовать мьютекс, в процесс B и предоставить его как общедоступный метод? Ваш английский в порядке 🙂
Ответ №1:
Безопасность доступа с правами доступа к именованному мьютексу: https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.mutexsecurity (v = против 110).aspx
Управление доступом для вас с именем mutex https://msdn.microsoft.com/en-us/library/system.threading.mutex.setaccesscontrol (v = против 110).aspx
Комментарии:
1. Спасибо за ссылки, я уже наткнулся на это сам, и, похоже, это действительно решение, я пока отмечу ваш ответ как правильный.
2. Наткнувшись на это при попытке заблокировать глобальные мьютексы в Linux, возникли проблемы с поиском каких-либо деталей