Я видел это в нескольких вопросах, но многие из принятых ответов противоречивы.Библиотека в GAC, используемая несколькими приложениями, имеет ли она одни и те же объекты или нет?
Некоторые говорят, что только IPC может использоваться, если вы хотите использовать один экземпляр (фактически только синхронизированный экземпляр) объекта через приложения и домены.
Другие говорят, что использование шаблона singleton в сборке в GAC приведет к совместному использованию данных, поскольку GAC будет совместно использовать экземпляр, если DLL уже загружена другой сборкой (при условии, что lib имеет одноэлементный шаблон).
Кто-то помогает мне и успокаивает меня, мне нужно разделить глобальный объект на несколько приложений в нескольких потоках и знать, прежде чем я заберусь слишком далеко, если это возможно даже без IPC, таких как WCF. Я бы предпочел использовать GAC, так как моя библиотека больше похожа на инфраструктуру, которая будет использоваться набором приложений, разработанными мной и другими сторонними разработчиками. Кроме того, скорость является серьезной проблемой, и сериализация/десериализация объекта для постоянной синхронизации, вероятно, добавит слишком много латентности, скорее всего, это единственный экземпляр, на который ссылаются несколько мест.
Так РАЗВЕЙТЕ вопрос, держа быстро меняющийся набор данных (сотни изменений в секунду), синхронизированный между приложениями с минимальной латентностью, каков наилучший метод? Кажется, что все они связаны с сериализацией/десериализацией, которая будет иметь свою собственную задержку. – Wobbles
_ «сотни изменений в секунду» _ Если данные нестабильны, вы должны отправить только несколько. В основном для использования волатильных данных используется UDP. (например, места в игре). Если данные нестабильны, вам, вероятно, не понадобится «сотни изменений в секунду». Можете ли вы «предсказать» следующее значение? (например, движущийся объект) –
он связан с аппаратным вводом, поэтому волатильность необходима, поскольку источник данных нестабилен. – Wobbles