Вы можете вызвать LockFile
функцию Windows API напрямую через слой P / Invoke. Вы должны использовать дескриптор, возвращаемый свойством SafeFileHandle в FileStream.
Вызов API напрямую позволит вам проверить возвращаемое значение для условия ошибки, а не прибегать к перехвату исключения.
Noah спрашивает, есть ли какие-либо издержки при вызове уровня P / Invoke по сравнению с try / catch.
Файл блокировки делает тот же вызов через слой P / Invoke и выдает исключение, если вызов LockFile возвращает 0. В вашем случае вы не выдает исключение. В случае, если файл заблокирован, вам понадобится меньше времени, потому что вы не работаете со стеком.
Фактическая настройка P / Invoke составляет около семи инструкций (для сравнения, COM-взаимодействие составляет около 40), но этот момент спорный, поскольку ваш вызов LockFile делает то же самое, что и управляемый метод (используйте P / вызывать слой).