.NET 4.x Служба Windows и параллельное программирование - C#
Формулировка задачи:
Здравствуйте, пишу свою службу Windows и приложение к нему. Будет эта связка бэкапить файлы/папки которые выбираются. Пока пишу службу, реализовал класс бэкапа файла(именно одного файла), но после понял что количество файлов может быть много, начал думать в сторону потоков/паралельного/асинхронного программирования и совсем запутался. В мечтах чтобы каждый поток следил за своим экземпляром и реагировал на ивенты своего экземпляра. Как это можно реализовать? Или есть другое более рациональное решение? Подскажите господа, буду признателен.
Решение задачи: «.NET 4.x Служба Windows и параллельное программирование»
textual
Листинг программы
[Serializable] class BackupItem : IDisposable { /// <summary> /// Path to the file or directory /// </summary> public string Path { get; set; } /// <summary> /// Last time of file changing /// </summary> public DateTime LastChangedDate { get; private set; } /// <summary> /// Last time of backup /// </summary> public DateTime LastBackupDate { get; private set; } /// <summary> /// Interval of backuping /// </summary> public TimeSpan BackupInterval{ get; set;} [NonSerialized] private FileSystemWatcher Watcher{get; set;} public void StartWatch() { Watcher = new FileSystemWatcher(Path); Watcher.Changed += delegate { LastChangedDate = DateTime.Now; }; } public void Dispose() { Watcher.Dispose(); } public void Buckup() { if (DateTime.Now < LastBackupDate.Add(BackupInterval))//если уже пришло время бекапа { if (LastChangedDate > LastBackupDate)//если файл был изменен после последнего бекапа { //делаем бекап //... } //запоминаем время последнего бекапа LastBackupDate = DateTime.Now; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д