я просматриваю каталог на предмет удаления, добавления и изменения. Я начал с доп. Время обработки заставляет меня иметь управление очередью, иначе я пропущу много файлов, добавленных в каталог. Вот код: Декларация:
static ConcurrentQueue<string> q = new ConcurrentQueue<string>();
Затем в Form_load :
Task.Factory.StartNew(filesAdded);
функция просмотра файлов:
private void fileSystemWatcher1_Created_1(object sender, FileSystemEventArgs e)
{
q.Enqueue(e.FullPath);
}
И затем функция filesAdded:
void filesAdded ()
{
bool run = true;
AppDomain.CurrentDomain.DomainUnload += (s, e) =>
{
run = false;
q.Enqueue("stop");
};
while (run)
{
string filename;
if (q.TryDequeue(out filename) && run)
{
Globals.getTags(filename);
Globals.ecritDs(filename, true);
}
}
}
кредит принадлежит Рене здесь
он работает нормально, но я изо всех сил пытаюсь найти способ использовать тот же механизм для измененных и удаленных файлов.
private void fileSystemWatcher1_Deleted(object sender, FileSystemEventArgs e)
{}
private void fileSystemWatcher1_Changed(object sender, FileSystemEventArgs e)
{}
Я хотел бы получить информацию о триггере в функции filesAdded (которую, очевидно, нужно переименовать), но я понятия не имею, как это сделать, поскольку метод Enqueue принимает только один параметр. Любая помощь приветствуется!