Правильная обработка ошибок в асинхронном методе. TelegramBot API

Я делаю телеграм бота, в котором бот отправляет уведомление клиенту о смене статуса заказа в другой программе.
Суть проблемы: если возникнет какая-либо ошибка от телеграма, то обрабатывается метод ErrorHandler. В нем я сделал MessageBox который предлагает перезапустить бота. И мне нужно, что бы при удовлетворительном ответе программа могла перезапустить бота или просто продолжать работать.

Решил проблему с помощью команды Process.GetCurrentProcess().Refresh();. Есть ли более правильные решения по перезапуску бота? До этого писал cts.Cancel(); и StartReceiving();, но он снова обрабатывал то же сообщение и MessageBox мог 100 раз вылезать подряд.

private async Task Error(ITelegramBotClient botClient, Exception exception, CancellationToken token)
{ 
     if (System.Windows.MessageBox.Show("Ошибка! " + exception.Message + "\n\nПерезапустить бота?", SaveClass.NameApp, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
     {
            Process.GetCurrentProcess().Refresh();
     }
     else
     {
            Process.GetCurrentProcess().Kill();
     }
}

Ответы (0 шт):