Это похоже на ошибку в Framework.Я могу ошибаться, потому что он действительно слишком большой, чтобы быть правдой.
Глядя на исходный код .NET 3.5 SP1 с Reflector, можно обнаружить, что IsolatedStorageFileStream вызывает базовый конструктор без параметров (FileStream ()), которыйприводит к не инициализированному базовому классу.IsolatedStorageFileStream создает экземпляр FileStream и использует его во всех методах, которые он переопределяет (Write, Read, Flush, Seek и т. Д.).Странно, что он не использует преимущества своего базового класса напрямую.
Но Lock и Unlock не переопределяются, и им нужно личное поле (_handle), которое все еще равно нулю (поскольку используемый конструктор является параметрическим).Они предполагают, что он ненулевой, и разыменовывают его и приводят к тому, что NRE.
Подводя итог, блокировка и разблокировка не поддерживаются (или глючат).
Я предполагаю, что вы вынуждены использовать другиеметоды блокировки, такие как Mutex или Semaphore.
Реализация такая же в .NET 4 RC.В Silverlight блокировка разблокировки вообще отсутствует (мои извинения за противоречие с MVP).