Nano Hash - криптовалюты, майнинг, программирование

Как перезапустить мобильное приложение C #?

Я прочитал много форумов и ссылок, таких как:

Как перезапустить приложение C # WinForm?

но все это для windows, а не для мобильных устройств. Как перезапустить мобильное приложение при обнаружении необработанного исключения. Теперь приложение закрывается, когда я перехватываю необработанное исключение, но я не хочу его закрывать, поэтому хочу его перезапустить.

Это не работает:

ProcessStartInfo s = new ProcessStartInfo();
            s.FileName = Assembly.GetExecutingAssembly().GetName().CodeBase;
            s.UseShellExecute = false;
            Process.Start(s);

Я использую Windows Mobile 6.1 и CF 3.5


Ответы:


1

В WinMo встроен механизм, предотвращающий запуск нескольких экземпляров приложения, поэтому вызов себя с помощью класса Process просто запустит экземпляр, который завершается оболочкой. Вам необходимо обойти это, P / Вызов CeRunAppAtTime или создайте отдельный процесс наблюдения, который следит за тем, чтобы процесс вашего приложения всегда был запущен, и запускает новый экземпляр, если обнаруживает, что он когда-либо исчез. Предупреждаем, что CeRunAppAtTime не может запланировать приложение менее чем на 11 секунд вперед, поэтому будет задержка.

19.10.2011

2

Вы не должны. Наилучший подход - предотвратить это исключение, в первую очередь исправив ошибку, которая его вызывает.

Но если вам действительно, действительно, действительно нужно перезапустить приложение по любой другой причине, кроме сбоя, вы можете запустить другой процесс в фоновом режиме вместе с вашим приложением, которое следит за тем, работает ли приложение, и снова запускает его с Process.Start(), если это не так. т.

(Если ваше приложение настроено на автоматический запуск на устройстве и ваше устройство поддерживает его, что маловероятно, так как это вещь Windows CE, но почему бы и нет - вы также можете создать сторожевые таймеры, чтобы при необходимости перезагрузить все устройство.)

Но постоянный перезапуск приложения (скажем, один раз в день) разрушает взаимодействие с пользователем, а также его доверие. Поэтому вместо этого вам следует исправить исключение.

19.10.2011
  • И да, я видел ваш другой вопрос о сбое, и если вы могли бы немного пояснить, какое исключение вы на самом деле ловите и при каких обстоятельствах оно возникает, чем, возможно, кто-то сможет помочь с этой частью. 19.10.2011
  • Я никогда не хочу закрывать свое приложение. Я хочу открыть форму входа, когда получаю необработанное исключение. Сеть не работает ... 19.10.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..