Ваша DLL может вызвать событие, например FileProcessing, для которого передается некоторая информация (текущее имя файла и т. Д.), На которую затем может подписаться ваше приложение c #, и таким образом ваша DLL не должна ничего знать о приложении, которое ее используети ваше приложение может просто обновлять метку при каждом возникновении события ... Вот обзор событий для c # в MSDN
Редактировать
Попробуйтеэтот код Статья проекта «Пример простейшего события C #, который только можно представить» .В нем говорится, что он предназначен для простого копирования / вставки в новый проект, поэтому вы сможете получить быстрый рабочий пример, чтобы увидеть концепцию.Что касается вашей ситуации, Metronome будет вашим сканером файловой системы, и вместо «Tick Events» у вас будут события FileProcess / FileScan.Слушатель из примера будет вашим C # UI-приложением.Таким образом, ваше приложение c # в основном ожидает, пока ваш файловый сканер вызовет события, после чего оно может использовать переданную информацию (пример также в ссылке) для обновления метки