Создайте несколько представлений одного и того же потока или другие способы достижения того же эффекта на C#.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Создайте несколько представлений одного и того же потока или другие способы достижения того же эффекта на C#.

Сообщение Anonymous »

Сейчас я разрабатываю систему кэширования для своего проекта, в которой все кэшированное содержимое хранится в одном файле (точно так же, как объекты времени выполнения языка программирования хранятся в памяти), затем файл называется mmap ed, поэтому я могу читать и записывать его, как если бы я работал с кешем памяти, теперь я могу получить массив байтов части этого файла с отображением, и я хочу представить его с помощью потока, лучший способ это, конечно, поток, который напрямую поддерживается содержимым на диск без фактического копирования буфера, но я не думаю, что есть способ сделать это (или доказать, что я ошибаюсь?). Таким образом, второстепенный способ — каким-то образом «поделиться» этой частью в виде потока (здесь поток обязателен, указатель не будет работать, поскольку он будет использоваться с некоторыми сторонними API, которые принимают только потоки, однако я не хочу использовать MemoryStream, поскольку он полностью копирует байтовый буфер, что противоречит цели кеша, я хочу, чтобы у меня был только один поток, но несколько его представлений, чтобы использовать эти просмотры делает на самом деле не копирует буфер, чтобы я мог предоставить эти представления этим API. Однако мне казалось, что невозможно сделать такие представления подклассами потока, поскольку поток опирается на функции «Чтение» и «Запись», которые всегда требуют. копирование, вот мои проблемы: есть ли способ сделать это, как бы хитро это ни было на C#?

Подробнее здесь: https://stackoverflow.com/questions/793 ... same-effec
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»