5

В C++, используя boost :: interprocess, вы можете определить boost :: interprocess :: basic_string, который в основном представляет собой абстракцию над строкой, которая хранится в файле Mapped Memory. Вы можете легко использовать его, как и любую другую строку в своем приложении (при условии, что вы позаботитесь о безопасности потоков).Есть ли эквивалент C# для boost :: interprocess :: basic_string?

Есть ли эквивалентная библиотека/пакет nuget/код для C#?

+0

В этом классе Boost нет ничего особенного, что делает его особенно подходящим для MMF. Строки на C++ - это просто кошмар, каждая нетривиальная библиотека вынуждена добавлять свои собственные, потому что не может полагаться на детали реализации другого. Не повторяйте эту ошибку, используйте Encoding.GetBytes(). –

+0

@HansPassant Но я могу использовать boost :: interprocess :: allocator, который выделил эту строку в MMF, и даже может помещать эти строки в структуру данных, хранящуюся в MMF, такую ​​как boost :: interprocess :: map или boost: : межпроцессного :: вектор. Я ищу аналогичную абстракцию в C#, которая абстрагируется от потоков с потоками. –

ответ

1

Нет. Однако, даже если бы можно было реализовать прозрачно, строки в C# неизменяемы. Поэтому я не думаю, что библиотека, подобная этой, была бы даже очень полезной.

Смежные вопросы