Примечание. Этот подход будет очень дорогим с точки зрения дискового ввода-вывода, использования памяти и процессорного времени. Почему вы используете XML, это тот родной формат данных, которые вы редактируете? Возможно, вы захотите взглянуть на более компактный формат - тот, который будет использовать меньше памяти, генерировать меньше операций ввода-вывода и использовать меньше ЦП.
Также обратите внимание, что вашему писателю может потребоваться очистить файл, чтобы наблюдатель заметил какие-либо изменения. Это также дорого - особенно если вы делаете это при каждом нажатии клавиши.
Обязательно используйте правильные атрибуты открытия файла (совместное использование, чтение и запись).
Возможно, вы захотите использовать совместно используемую память для связи между вашими процессами. Это будет дешевле. Вы можете избежать большого количества дисковых операций ввода-вывода, записывая изменения на диск, только когда пользователь просит их зафиксировать, или есть подсказка для этого. Я предлагаю избегать делать это при каждом нажатии клавиши.
Помните, ваше приложение должно быть хорошим системным пользователем и потреблять разумное количество системных ресурсов. Это особенно актуально при работе на нетбуках и других системах с «низкими характеристиками».