Библиотеки базовых классов MonoTouch (BCL) взяты из Mono, поэтому большая часть кода доступна с открытым исходным кодом.В случае FileStream
вы можете увидеть код на github.
Потоковый файл не загружается полностью (поведение, которое я ожидаю от потока, но я 'я не уверен насчет работы с MonoTouch)
Вы правы, он не будет полностью загружен.Вы будете контролировать, что читается.
и как используется память при потоковой передаче?
Приведенная выше ссылка показывает, что размер буфера по умолчанию установлен на 8192 байт (8 КБ), но несколько конструкторов позволяют использовать другой размер (если вы этого хотите).
и как используется память при потоковой передаче?
Но этот буфер является внутренним буфером.Вы будете предоставлять свой собственный буфер при вызове таких методов, как Read
, поэтому вы снова будете контролировать объем используемой памяти.
Какпроизводительность процесса загрузки, особенно при одновременной загрузке разных файлов?
Это сложно предсказать, и оно будет во многом зависеть от вашего приложения (например, количество файлов, общий объем памяти, необходимый ...).Вы можете использовать FileStream
асинхронные методы, такие как BeginRead
, чтобы повысить производительность при необходимости.