Глобальный счетчик

  • Автор темы Автор темы cherus09
  • Дата начала Дата начала

cherus09

Client
Регистрация
10.10.2016
Сообщения
172
Реакции
14
Баллы
18
Привет, во время работы шаблона создаю глобальный счетчик для работы в многопотоке. При попытке увеличить этот счетчик на 1 в ProjectMaker V7 все работает нормально, а в ZennoPoster V7 выдает ошибку "Входная строка имела неверный формат."
Вот код счетчика:
C#:
Развернуть Свернуть Копировать
lock(SyncObject) {
    
    try {
        //Если глобалка инициализирована - апаем на 1, возвращаем в переменну.
        var gb_count = project.GlobalVariables["namespace", "global_count"];
        gb_count.Value = Convert.ToInt32(gb_count.Value.ToString())+1;
        return gb_count.Value;
        
    }
    catch (KeyNotFoundException ex) {
        //Если нет - инииализируем со значением 0, возвращаем ноль
        project.GlobalVariables.SetVariable("namespace", "global_count", 0);
        return 0;
    }
    
}

И еще такой вопрос как обнулить этот счетчик по завершению шаблона, чтоб при повторном запуске был 0 в счетчике. Как обнулить счетчик я знаю, вот только не могу понять при каких условиях его обнулить.
 
обнулять отдельным шабом, счетчитк лучше в файл
 
При условиях завершения первого потока. У которого в конце пауза 60 сек.
А как узнать какой первый а какой второй? И где гарантии что остальные Х потоков за 60сек остановятся?
 
При условиях завершения первого потока. У которого в конце пауза 60 сек.

Не всегда и не везде подойдет.
да проще файл-метку выставить. или метку записать в файл. вариантов много...
 
А как узнать какой первый а какой второй? И где гарантии что остальные Х потоков за 60сек остановятся?
Назначать в проект. Гарантий нет)) глобалки это сложно. Брось ты это дело пока не поздно))

Но если оч хочется. Снипет ростоникса поищи. Он до сих пор трудится в парсере у меня.
 
Ну ты проверяешь сколько потоков трудится в данный момент. Если например 10 то поток просто завершает. Если 1, то это и есть последний, он и обнуляет. Для начала надо ознакомится с этой статьей https://zennolab.com/discussion/threads/upravlenie-shablonom-c.54713/
 
  • Спасибо
Реакции: one
выдает ошибку "Входная строка имела неверный формат."
Такую ошибку может выдавать Convert.ToInt32 если на вход ему подавать строку не с целым числом, а с текстом или числом с дробной частью, или пустую строку.
Попробуйте выводить в лог значение, которое пытаетесь сконвертировать в число.
 
  • Спасибо
Реакции: doc
Такую ошибку может выдавать Convert.ToInt32 если на вход ему подавать строку не с целым числом, а с текстом или числом с дробной частью, или пустую строку.
Попробуйте выводить в лог значение, которое пытаетесь сконвертировать в число.
у него все обернуто в try. вообще не должно ничего выводиться. скорее всего зенка глюкнула и начала сыпать сообщения просто от балды. за ней не раз такое поведение замечалось :)
 
у него все обернуто в try. вообще не должно ничего выводиться.
в try обрабатывается только одно исключение - KeyNotFoundException:-)

скорее всего зенка глюкнула и начала сыпать сообщения просто от балды.
Не будем раньше времени обвинять ЗП. Люди тоже ошибаются и, например, забывают прописать значение для какой-то переменной или прописывают, но некорректное. "не раз такое поведение замечалось :-) "
 
в try обрабатывается только одно исключение - KeyNotFoundException:-)
кстати да... а я чот даже не обратил на это внимание. у себя пишу только catch () {} и все исключения падают сюда :)
 
Не будем раньше времени обвинять ЗП. Люди тоже ошибаются и, например, забывают прописать значение для какой-то переменной или прописывают, но некорректное. "не раз такое поведение замечалось :-) "
за других не скажу, а вот свои проекты не раз чудили в зенке. ну вот реально на ровном месте начинались сыпаться ошибки на рабочем проекте. Лечилось перезагрузкой зенки, а не правкой в ПМ, так как править было нечего, все и так работало.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)