разделение памяти между двумя приложениями - PullRequest
15 голосов
/ 25 октября 2011

У меня есть два разных приложения Windows (два разных человека пишут код).Один написан на C ++, а другой на C #.Мне нужен какой-то способ, как делиться данными в оперативной памяти между нимиОдин должен записывать данные, а другой просто читает записанные данные.Что я должен использовать, чтобы сделать его наиболее эффективным и быстрым?Спасибо.

Ответы [ 4 ]

23 голосов
/ 25 октября 2011

Вы можете использовать Отображенные в память файлы .

Здесь - статья о том, как их использовать.

2 голосов
/ 25 октября 2011

Вы можете использовать Именованные Трубы .

Именованный канал - это именованный, односторонний или дуплексный канал для связи между канальным сервером иодин или несколько клиентов канала.Все экземпляры именованного канала совместно используют одно и то же имя канала, но каждый экземпляр имеет свои собственные буферы и дескрипторы и обеспечивает отдельный канал для связи клиент-сервер.Использование экземпляров позволяет нескольким клиентам канала одновременно использовать один и тот же именованный канал.

Любой процесс может получить доступ к именованным каналам при условии проверки безопасности, что делает именованные каналы простой формой связи между связанными или несвязанными процессами.

2 голосов
/ 25 октября 2011

Используйте Windows File Mapping Object , который позволяет вам распределять память между процессами.

0 голосов
/ 25 октября 2011

Я рекомендую вам перепроектировать его, чтобы позволить ему использовать связь, основанную на сообщениях. Он более надежен и намного проще в использовании в .NET с автоматическим управлением памятью (по сравнению с разделяемой памятью). Хотя и медленнее.

...