private void Subscribe_Changed(object sender, FileSystemEventArgs e) { try { Thread.Sleep(1000); FileInfo fileInfo = new FileInfo(e.FullPath); FileSubscriber subscriber = _listSubscriber.First(f => f.Key.FullName == fileInfo.FullName).Value; string tempFileName = DirFile.GetTempFile(); FileInfo fileInfoTemp = fileInfo.CopyTo(tempFileName); string fileName = fileInfo.Name; string extension = fileInfo.Extension; fileInfo = null; Task.Run(() => { lock (_locker) { using (Versions versions = new Versions() { SubscriberInfo = fileInfoTemp, Subscriber = subscriber, FileName = fileName, Extension = extension }) { versions.CreateNewVersionFile(); } _callUpdate.NeedNotified = true; _callUpdate.Call(subscriber); DirFile.DeleteFile(fileInfoTemp); fileInfoTemp = null; } }); } catch (Exception ex) { Errors.Save(ex); } }