|
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
|
|
Различается выполнение программы в обычном режиме и пошагово21.01.2012, 11:33. Показов 1517. Ответов 7
Метки нет (Все метки)
Программа на C#.
Программа создает массив объектов с единственным свойством, которое назначается случайным образом. При выполнении программы, это свойство для всех объектов оказывается с одним и тем же значением. При этом, когда просматриваю выполнение кода пошагово, все начинает волшебным образом работать как надо и свойства объектов начинают различаться.
0
|
|
| 21.01.2012, 11:33 | |
|
Ответы с готовыми решениями:
7
Программы не запускаются в обычном режиме Как удалить Trojan.Mayachok.1 (не работают браузеры , не запускаются программы в обычном режиме , перенаправление на internet.com и другие сайты) Программа выдает разный результат при работе в обычном режиме и в режиме отладки |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 21.01.2012, 11:37 | |
|
Кришна мне подсказывает, что вы пользуетесь классом Random, который создается в цикле.
В качестве решения используйте один экземпляр этого класса, который создается перед циклом.
0
|
|
|
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
|
||
| 21.01.2012, 11:42 [ТС] | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 21.01.2012, 11:44 | ||
|
Чтобы вокруг да около не ходить, а сразу видеть проблему.
0
|
||
|
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
|
||||||
| 21.01.2012, 11:49 [ТС] | ||||||
Добавлено через 3 минуты Поясню еще раз: 1) Запускаю программу - создаются экземпляры объектов(пусть 2), параметры их одинаковые. 2) Хочу посмотреть что не так - ставлю точку останова - дохожу до той же точки программы что и в случае (1) - все работет как нужно, у объектов разные параметры.
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 21.01.2012, 11:53 | |
|
Ага, а потом, дайте угадаю, в цикле создается несколько экземпляров класса Settler, и у всех значения массива одинаковые, да?
То есть экземпляр класса Random все-таки создается в цикле, да?
0
|
|
|
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
|
||
| 21.01.2012, 11:58 [ТС] | ||
|
Щас проверил : если назначить точку остановки после создания объектов - все равно одинаковые выходят. То есть если наблюдать за процессом создания объектов - то все работает как надо.
Добавлено через 2 минуты
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 21.01.2012, 12:03 | ||||||
|
Вы не ответили на вопрос по поводу цикла, но тут и так ясно, что он в цикле создается.
Проблема в том, что дефолтный конструктор класса Random в качестве зерна для генерации псевдослучайной последовательности использует текущее время, которое обновляется примерно раз в 16 милисекунд. Если в течение этого времени создается несколько объектов класса Random (в цикле, например), то их зерно имеет одинаковое значение, в результате чего они генерируют одинаковые последовательности. Когда вы тормозите код в отладчике, там между каждым шагом, разумеется, проходит больше 16-и мс, в результате чего генераторы имеют разные зерновые значения и, как результат, генерируют разные последовательности. Вариантов исправления проблемы несколько. 1. Сделать переменную rnd статической - тогда она будет создана ровно один раз для всех экземпляров. Минус в том, что даже если Settler'ы не будут создаваться, генератор все равно будет висеть в памяти. 2. Передавать в конструктор зерновое значение, которое с большой вероятностью будет каждый раз другим. Довольно часто для этих целей используется хэш-код GUID:
1
|
||||||
| 21.01.2012, 12:03 | |
|
Помогаю со студенческими работами здесь
8
Ошибка 0x0000007E при запуске Windows XP в обычном режиме и ошибка 0x0000007B — в безопасном режиме Не загружается в обычном режиме Ноутбук не грузится в обычном режиме! Windows 7 не запускается в обычном режиме
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|