Что означает "ссылка" на файл в Process Explorer?
В нашем приложении мы пишем несколько файлов журнала по-разному (через разные библиотеки). Один из файлов будет время от времени блокироваться при очистке его буфера. Трассировка стека в это время:
at Microsoft.Win32.Win32Native.WriteFile(SafeFileHandle handle, Byte* bytes, Int32 numBytesToWrite, Int32& numBytesWritten, IntPtr mustBeZero)
at Microsoft.Win32.Win32Native.WriteFile(SafeFileHandle handle, Byte* bytes, Int32 numBytesToWrite, Int32& numBytesWritten, IntPtr mustBeZero)
at System.IO.FileStream.WriteFileNative(SafeFileHandle handle, Byte[] bytes, Int32 offset, Int32 count, NativeOverlapped* overlapped, Int32& hr)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.FileStream.FlushWrite(Boolean calledFromFinalizer)
at System.IO.FileStream.Flush(Boolean flushToDisk)
...
Я заметил, что в Process Explorer (из Sysinternals Suites) блокирующий файл всегда имеет много "ссылок":
Но у каждого из других файлов журнала (которые всегда хороши) есть только 1 ссылка.
Что такое "ссылка" файла? Возможно ли причина того, что файл заблокирован при сбросе?