Я пишу библиотеку классов C # для передачи больших объемов данных с помощью автоматизации COM с помощью IStream. Он использует CreateStreamOnHGlobal вызов API для создания потока и методы в System.Runtime.InteropServices.COMTypes.IStream для работы с ним.
Мой вопрос: при передаче больших объемов данных, как лучше всего контролировать объем памяти? Загрузка 100 МБ + файловых данных в память кажется расточительной, и клиентскому приложению придется подождать, пока этот процесс завершится, прежде чем что-либо загружать.
Мой план состоял в том, чтобы создать поток разумного размера и писать в него несколько раз. Перед записью следующего фрагмента данных вернитесь к началу и перезапишите, начиная с начала. Правильно ли я об этом говорю, и есть ли лучший способ решить эту проблему?