Могу ли я создать виртуальный диск в памяти программно?

2

В целях производительности я хочу записать в память, где может считываться внешнее приложение. Я не могу связать оба приложения вместе, поэтому я думаю, что единственный способ - написать файл. Но записать его на физический диск недостаточно быстро. Я хочу подключить виртуальный раздел, чтобы любое приложение могло получить к нему доступ. Как это сделать?

  • 0
    Проверьте это .
  • 0
    DevCon не подлежит распространению. Он предназначен для использования в качестве средства отладки и разработки.
Показать ещё 3 комментария
Теги:

4 ответа

2
Лучший ответ

Вы можете использовать именованный канал для передачи данных между приложениями.

9

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

См. статью MSDN: Создание именованной общей памяти

1

Я хочу, чтобы вы могли использовать .NET 4.0:)

В .NET 4.0 представлен файл с отображением памяти.

Гуннар Пейпман красиво написал по следующей ссылке: .NET Framework 4.0: Использование файлов с отображением памяти

В своем блоге "Файлы с отображением памяти полезны, когда вам нужно делать манипуляции с памятью в памяти, а ваши структуры данных велики. Для больших данных в памяти производительность файла с отображением памяти является лучшей. чем MemoryStream. И как файлы на жестком диске, файлы с отображением памяти могут совместно использоваться различными программами.

В его блоге также содержится пример кода.

  • 1
    К сожалению, кажется, что только .NET-приложения могут получить доступ к таким файлам.
1

Я видел некоторую коммерчески доступную реализацию ramdisk для .net, но я не могу найти ее прямо сейчас.

Другим вариантом может быть: С#, доступ к файлу карты памяти

Ещё вопросы

Сообщество Overcoder
Наверх
Меню