Дела сейчас обстоят так.
Первая программа на C++.
Периодически открывает файл на перезапись fopen ("...", "w") и пишет туда два числа. После чего файл закрывается. Промежутки времени межде записью непредсказуемы.
Вторая программа на C# (точнее ASP.NET приложение)
Периодически читает содержимое файла.
StreamReader sr = File.OpenText("...");
int currentStep = Convert.ToInt32(sr.ReadLine());
int allSteps = Convert.ToInt32(sr.ReadLine());
sr.Close();
Основная проблема в том, что может происходить одновременный доступ к файлу

Наиболее критична ситуация, когда вторая программа читает файл, а первая в этот момент не может записать, т.к. файл открыт.
Как наименьшей кровью разрулить ситуацию?