public async Task SetUpAsync()
        {
            _bookUseNotificator = new BookUseNotificator(BookUseNotifySoundFilePath)
            {
                IsEnabled = IsNotifyBookUses.Value
            };
            _enchantSpellUseNotificator = new EnchantSpellUseNotificator(EnchantSpellUseNotifySoundFilePath)
            {
                NotifyTimeSpan         = EnchantSpellNotifyTimeSpan.Value ?? TimeSpan.Zero,
                IsEnchantNotifyEnabled = IsNotifyEnchantUses.Value,
                IsSpellNotifyEnabled   = IsNotifySpellUses.Value
            };

            if (EnchantSpellNotifyTimeSpan.Value == TimeSpan.Zero)
            {
                EnchantSpellNotifyTimeSpan.Value = TimeSpan.FromSeconds(10);
            }

            _skillUseService                     = new SkillCountService();
            _skillUseService.WarStarted         += _skillUseService_WarStarted;
            _skillUseService.WarCanceled        += _skillUseService_WarCanceled;
            _skillUseService.WarFinished        += _skillUseService_WarFinished;
            _skillUseService.SkillUsed          += _skillUseService_SkillCountIncremented;
            _skillUseService.SkillsUpdated      += _skillUseService_SkillsUpdated;
            _skillUseService.PowDebuffsUpdated  += _skillUseService_PowDebuffsUpdated;
            _skillUseService.PowUpdated         += _skillUseService_PowUpdated;
            _skillUseService.HpUpdated          += _skillUseService_HpUpdated;
            _skillUseService.ProcessTimeUpdated += _skillUseService_FpsUpdated;
            _skillUseService.KeepDamageUpdated  += _skillUseService_KeepDamageUpdated;
            _skillUseService.BookUsesUpdated    += _skillUseService_BookUsesUpdated;

            SkillCountHistories.AddRangeOnScheduler(_skillCountRepository.GetSkillCounts());

            _skillCountFileRepository = await SkillCountFileRepository.CreateAsync(TxtFilePath, XmlFilePath);
        }
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
            {
                return;
            }

            try
            {
                if (_skillUseService != null)
                {
                    _skillUseService.Dispose();
                    _skillUseService = null;
                }
            }
            finally
            {
                _disposed = true;
            }
        }