• Как получить информацию о том, вызвано ли на данный момент исключение?

    @Lelushak
    Никак. У вас случается unhandled exception, выброшенный в другом (UI) потоке.

    Единственный способ, — ловить исключение в обработчике click, а затем сохранять в какую-нибудь переменную информацию об этом или даже само исключение. А затем обращаться к этой переменной из теста.

    Но вообще-то так делать нельзя. Юнит-тесты не должны взаимодействовать с UI, они предназначены для тестирования модулей. Ваша задача решается через интеграционное тестирование.
    Ответ написан
    Комментировать
  • Как контролировать память в C#?

    @Lelushak
    В общем случае — никак. А зачем? Единственная возможная рекомендация здесь — пишите код так, чтобы много памяти не тратилось.

    Гипотетически, можно разработать для приложения специальную архитектуру, которая будет позволять прерывать любые запущенные задачи при превышении порога памяти, освобождать ресурсы и затем дожидаться вызова GC. Например, через TPL с CancellationToken. Но это, мягко говоря, непростой путь. Занимаемую память можно мониторить через GC.GetTotalMemory или средствами ОС. Но есть ещё два нюанса:

    1. Постоянное измерение памяти приведет к падению общей производительности программы
    2. Вы не сможете использовать библиотеки, которые не поддерживают отмену вызванных функций
    Ответ написан