FileStream бросает «Положение дескриптора ОС не то, что ожидал FileStream».при вызове Finalize () - PullRequest
0 голосов
/ 11 июня 2019

Когда я закрываю свое приложение, FileStream иногда выдает IOException в режиме отладки:

System.IO.IOException
  HResult=0x80131620
  Message=The OS handle's position is not what FileStream expected. Do not use a handle simultaneously in one FileStream and in Win32 code or another FileStream. This may cause data loss.
  Source=mscorlib
  StackTrace:
   at System.IO.FileStream.VerifyOSHandlePosition()
   at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.FileStream.FlushWrite(Boolean calledFromFinalizer)
   at System.IO.FileStream.Dispose(Boolean disposing)
   at System.IO.FileStream.Finalize()

Я не проверял это в режиме выпуска, потому что эта ошибка возникает очень редко. Я использую FileStream так:

using (var stream = new FileStream()) {
    // some code
}

Когда я закрываю приложение, FileStream не открывается.

Мое приложение, использующее .NET Framework 4.5 и WPF

...