public void RunIfNeeded() { if (!isStarted) { isStarted = true; Task.Factory.StartNew(async() => { try { await Process(); } catch (BotCancelOperationException e) { Console.WriteLine($"User {manager.UserId} cancel operation"); } catch (Exception e) { await manager.SendTextMessageAsync( "Что-то пошло не так. Мы уже разбираемся с проблемой, повторите свой запрос позже.", resetMarkup); Console.Error.WriteLine(e); throw; } finally { isStarted = false; } }); } }