Re[2]: Как между процессами синхронизироваться?
От: Silver_s Ниоткуда  
Дата: 30.05.04 11:29
Оценка:
Здравствуйте, mayevski, Вы писали:

M>С именоваными event'ами проблема на платформах, отличных от Win32. Да и начальная специфика проектов .Net (веб-сервисы, ASP.NET) не предполагала широкой межпроцессной синхронизации...


Наверное из-за этого они отказались от именованых ивентов.
Шаманить с WinAPI тоже не хочется, т.к. задача того не оправдывает.

А задачка то в общем то примитивная. В небольшой dll'ке с интерфейсами Remoating объекта, сделать запуск известного процесса который эти Remoating объекты регистрирует и дождаться пока эти WellKnown типы появятся. Сам Remoating не знает какие у него WellKnown типы есть. По крайней мере я не неашел таких фичей.
А проверять наличие типов на локальной машине, создавая объекты и ловя exeption после таймаутов от неудачных обращений к их функциям не хорошо.

Остается такой вариант. Клиенту в цикле со Sleep'ами 10 милисекунд. Пытаться захватить именованый Mutex, если получается, то сразу освобождаем и дальше крутим цикл пока он не будет занят.
А на серваке после регистрации WellKnown типов, занимаем этот Mutex.
Ну и еще второй Mutex на серваке перед входом в код регистрации типов и каналов,чтобы защитить от входа из второй копии. Иначе рушится оба сервера.

Неужели это лучший вариант?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.