Я пишу каталогизирующее приложение, которое анализирует и извлекает информацию из файлов и сохраняет информацию из каждого файла в экземпляре объекта. В дополнение к данным, извлеченным из файла, объекты также имеют дополнительные свойства метаданных (автор, теги, заметки и т. Д.), Которые впоследствии сохраняются в отдельном файле XML.
Извлечение данных из файлов является длительным процессом, поэтому он выполняется в отдельном потоке. Свойства, извлеченные из файлов, будут извлечены только из файлов и, таким образом, будут иметь атрибуты [ReadOnly], чтобы пользователь не мог их редактировать. С другой стороны, свойства метаданных заполняются только пользователем и, следовательно, не только для чтения. Я разрешаю пользователю просматривать / редактировать эти объекты через PropertyGrid.
Таким образом, если процесс извлечения выполняется в одном потоке, заполняющем свойства файла объекта, есть ли опасность, что пользователь может одновременно редактировать свойства метаданных? Я пытаюсь решить, должен ли я использовать модальный интерфейс, который запрещает пользователю делать что-либо до тех пор, пока извлечение не будет завершено / отменено, или немодальный интерфейс, который позволяет им продолжать работать, пока извлечение выполняется.