public async Task PerformBackup() { BackupData backup = await _data.PrepareBackup(); bt.ExtendBackup(backup); // We have the backup data now, we can continue without the lock, as long as this was indeed a deep copy. Console.WriteLine($"Saving backup data to {Settings.backupFile}."); backup.BackupToFile(Settings.backupFile); await _primary.BackupFileToMessage(Settings.backupFile, Settings.DataBackupChannel); }