Вам необходимо использовать версию EventWaitHandle конструктора , которая принимает EventWaitHandleSecurity экземпляр. Например, следующий код должен работать (он не проверен, но, надеюсь, поможет вам начать работу):
// create a rule that allows anybody in the "Users" group to synchronise with us
var users = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
var rule = new EventWaitHandleAccessRule(users, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify,
AccessControlType.Allow);
var security = new EventWaitHandleSecurity();
security.AddAccessRule(rule);
bool created;
var wh = new EventWaitHandle(false, EventResetMode.AutoReset, "MyEventName", out created, security);
...
Кроме того, если вы работаете в Vista или более поздней версии, вам нужно создать событие в глобальном пространстве имен (то есть префикс имени с «Global \»). Вам также придется сделать это в Windows XP, если вы используете функцию «Быстрое переключение пользователей».