Что вы имеете в виду, данные важны? Файл XML не используется исключительно вашим приложением?
Простым (и, возможно, достаточно хорошим) способом блокировки доступа ввода-вывода к файлу было бы создание статического фабричного класса, предоставляющего объект «чтение-запись-токен», для которого каждая операция ввода-вывода должна иметь блокировку.
public static object GetReadWriteToken(String fileName)
{
//use a hashtable to retreive an object, with filename as key
return token;
}
и просто сделайте это во время чтения и записи:
lock(GetReadWriteToken(@"C:\important.xml"))
{
//io code
}