Выполнение действия CSharp OwnCode: Входная строка имела неверный формат.

Kababchik

Новичок
Регистрация
12.03.2021
Сообщения
16
Благодарностей
0
Баллы
1
C#:
lock(SyncObject) {
    var gbVar = project.GlobalVariables["razdva", "globVar3"];
    gbVar.Value = Convert.ToInt32(gbVar.Value.ToString())+1;
    project.Variables["currentValue"].Value = gbVar.Value.ToString();
}
Код почему то стал работать раз через раз. Сейчас срабатывает нормально, после перезапуска может начать писать ошибку "Выполнение действия CSharp OwnCode: Входная строка имела неверный формат."
 

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43
project.GlobalVariables["razdva", "globVar3"]
Возможно глобальная переменная содержит пустоту или недопустимые значения, например буквы, а вы пытается привести в int(целочисленный тип данных) Возможно так же, что число не целое.
 
  • Спасибо
Реакции: Kababchik

Kababchik

Новичок
Регистрация
12.03.2021
Сообщения
16
Благодарностей
0
Баллы
1

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43
Выполнение действия CSharp OwnCode: increment counter and store value to local variable. Глобальная переменная razdva.globVar3 не инициализирована
Сорри, я там поторопился с ответом. Все нормально в вашем коде. Просто проверку значений нужно делать в переменных
 

Kababchik

Новичок
Регистрация
12.03.2021
Сообщения
16
Благодарностей
0
Баллы
1
Сорри, я там поторопился с ответом. Все нормально в вашем коде. Просто проверку значений нужно делать в переменных
Да, проблема в том, что в переменной пустота, вопрос в том, что он раз через раз сам выставляет значение на 0
 

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43
Да, проблема в том, что в переменной пустота, вопрос в том, что он раз через раз сам выставляет значение на 0
Ну я не знаю, как у вас шаблон работает. Причину проблемы выявили. Остается либо делать проверку на пустоту, либо править логику шаблона
 

Kababchik

Новичок
Регистрация
12.03.2021
Сообщения
16
Благодарностей
0
Баллы
1
Ну я не знаю, как у вас шаблон работает. Причину проблемы выявили. Остается либо делать проверку на пустоту, либо править логику шаблона
108264

Создаю глабольную переменную, если она уже существует, то увеличиваю ее значение на 1 во втором блоке. В ПМ все работает хорошо, но когда запускааю проект в многопотоке в ЗП то вылезает ошибка, которую кидал выше
 

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43
Посмотреть вложение 108264
Создаю глабольную переменную, если она уже существует, то увеличиваю ее значение на 1 во втором блоке. В ПМ все работает хорошо, но когда запускааю проект в многопотоке в ЗП то вылезает ошибка, которую кидал выше
Вам точно нужна глобальная переменная? Потому что глобальная переменная одна для нескольких потоков в ЗП, меняя в одном потоке, меняется и в другом.
 

Kababchik

Новичок
Регистрация
12.03.2021
Сообщения
16
Благодарностей
0
Баллы
1
Вам точно нужна глобальная переменная? Потому что глобальная переменная одна для нескольких потоков в ЗП, меняя в одном потоке, меняется и в другом.
Попробую объяснить. У меня есть условно текстовик с данными такого формата
"1
2
3
4"
Для того чтобы не брать одно и тоже значение из текстовика, я увеличиваю значение глобальной переменной, локальная переменная в свою очередь становится равной глобальной переменной. Локальная переменная = строке, которую берет поток для обработки.
 

Master4eg

Client
Регистрация
06.04.2016
Сообщения
421
Благодарностей
122
Баллы
43
Попробую объяснить. У меня есть условно текстовик с данными такого формата
"1
2
3
4"
Для того чтобы не брать одно и тоже значение из текстовика, я увеличиваю значение глобальной переменной, локальная переменная в свою очередь становится равной глобальной переменной. Локальная переменная = строке, которую берет поток для обработки.
Правильнее было бы брать данные из файла построчно с удалением.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 514
Благодарностей
3 368
Баллы
113
Вот пример правильной работы с глоб. переменной:
В данном примере хранится объект синхронизации.
 

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