Filewatcher и управление очередямиC#

Место общения программистов C#
Ответить
Anonymous
 Filewatcher и управление очередями

Сообщение Anonymous »

Я просматриваю каталог на предмет удаления, добавления и изменения.
Я начал с добавления.
Время обработки вынуждает меня управлять очередью, иначе я пропущу много файлов, добавленных в каталог. dir.
Вот код:
Декларация:

Код: Выделить всё

static ConcurrentQueue q = new ConcurrentQueue();
Затем в Form_load:

Код: Выделить всё

Task.Factory.StartNew(filesAdded);
Функция Filewatcher:

Код: Выделить всё

    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 принимает только один параметр.
Любая помощь приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/619 ... management
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»