Похоже, что-то внешнее блокирует ваши потоковые файлы.
Вы можете попробовать Process Monitor , чтобы увидеть, что его блокирует.
Еще одна вещь, которую вы можете попробовать, - открыть поток в режиме чтения-запрета-записи (пожалуйста, покажите нам, как вы открываете поток).
Примерно так:
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;
Редактировать 1: Не обращать внимания на удар через деталь: вы используете TStringStream.
Я оставлю ответ на всякий случай, если кто-либо когда-либо получит такую ошибку при использовании TFileStream.
Редактировать 2: Юрий опубликовал это интересное дополнение, но я не уверен, что оно будет работать, так как BlobStream
не инициализирован, как Роберт Лав подозревается:
Function TCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean;
Begin
Result := False;
Try
If Not IfUseCache Then
exit;
BlobStream.SetSize(0);
BlobStream.Size := 0;
StreamValue(trim(cName), True, BlobStream);
If BlobStream.Size > 0 Then
Result := True;
Except
On E: Exception Do
Begin
x.xLogError('LogErrorCacheInMemory.txt', 'CheckCacheOutStream:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory));
End;
End;
End;
- Йерун