Определение перезапуска Сервера из кода формулы

Стартовая страница Форумы Понять, как работает ПО Использование формул Определение перезапуска Сервера из кода формулы

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • #3879
    manjey73
    Участник

    Как определить из кода формулы, что сервер был перезапущен.
    При перезапуске Сервера компилируются все формулы и все переменные, которые были инициализированы как глобальные обнуляются.

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

    • Эта тема была изменена 7 лет, 3 месяца назад от manjey73.
    #3882
    Mikhail
    Модератор

    Как Вы правильно заметили, при перезапуске Сервера переменные обнуляются. Это и нужно использовать для определения того, что сервер был перезапущен.
    Следующая функция возвращает true только один раз после запуска Сервера.

    bool RestartFlag = false;
    bool Restarted()
    {
      if (RestartFlag)
      {
        return false;
      }
      else
      {
        RestartFlag = true;
        return true;
      }
    }
    
    #3883
    Mikhail
    Модератор

    Вопросы про файлы и ratain просьба уточнить.

    #3884
    manjey73
    Участник

    Хочу переменные сохранять в файл, например xml.
    В случае если переменные мы не сохраняем, делаем проверку на перезапуск сервера и при запуске функции переменные в файле обнуляются.
    В случае, если необходимо сохранять переменные при перезапуске Сервера то не обнуляем их в файле а используем те, что туда записаны.

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

    То есть как будет выглядеть вызов функции с проверкой что сервер перегружался ?

    • Этот ответ был изменен 7 лет, 3 месяца назад от manjey73.
    #3916
    Mikhail
    Модератор

    Можно сделать через свойства. Пример:

    bool MyVarInited = false;
    int MyVar = 0;
    
    int MyVarProp
    {
      get
      {
        if (!MyVarInited)
        {
          MyVarInited = true;
          LoadMyVarFromFile();
        }
        return MyVar;
      }
      set
      {
        MyVarInited = true;
        MyVar = value;
      }
    }
    
    • Этот ответ был изменен 7 лет, 3 месяца назад от Mikhail.
Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Вы должны авторизироваться для ответа в этой теме.