2012-12-09 10 views
8

Otrzymuję następujący wyjątek podczas próby odczytu pliku tekstowego LOCL korzystającWyjątek podczas odczytywania tekstu z pliku przy użyciu FileIO.ReadTextAsync

var text = await FileIO.ReadTextAsync(file); 

rączki z których oplock wiązało został zamknięty. Oplock jest teraz uszkodzony. (Wyjątek od HRESULT: 0x80070323)

Zdarza się to w jednym z testów jednostek regresji, zdarza się również od czasu do czasu w aplikacji. Aplikacja to XAML + C#

Jakieś pomysły, co może być przyczyną ?!

+0

Czytasz z udziału sieciowego, prawda? – usr

+0

Nie, czytam z lokalnego pliku – Vitalij

+0

Czy jest coś niezwykłego w tym pliku, który czytasz? Czy jest szczególnie duży? –

Odpowiedz

5

Wystąpił ten sam problem, który wystąpił w wyniku gwintowania współbieżnego. Próbowałem uzyskać ten sam plik w dwóch miejscach jednocześnie i nie zdawałem sobie z tego sprawy.

Spróbuj zweryfikować swój kod, szukając innego dostępu do tego samego pliku i sprawdź, czy zamykasz po przeczytaniu, i nie zapomnij zadzwonić "czekam" lub użyć blokady w każdym czytaniu pliku. Myślę, że to może rozwiązać twój problem.

+1

Nie mogę zweryfikować, czy to działa, ale z opisu wydaje mi się, że właśnie to robiłem w projekcie. – Vitalij

+1

Miałem ten sam błąd. Zgodnie z sugestią tej odpowiedzi stwierdziłem, że jest ona spowodowana przez BitmapDecoder uzyskujący dostęp do pliku, który nie jest już dostępny. – Hong