![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Madrid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
Вобщем такая задача!
На форме есть два листбокса и кнопка! Жму на кнопку - запускается процес генерации случаиных чисел(в диапазоне от 0 до 1000). Я жду когда выпадет нужное мне число(например 703) и тогда добавляю его в один из листбоксов, во второй листбокс я добавляю номер итерации, на которой, оно выпало! Эта всё происходит в отдельном потоке! вот код:
Проблема в том, что загаданное число(703), добавляется в листбокс пачкой, по несколько штук, причем получается так что загаданное число выпадает 8 или 10 раз подряд(бред какой-то)!Такого же неможет быть!В чём ошибка!И ещё сделайте какие-нибудь замечания по поводу потока(всё ли правильно я сделал).Зараннее - спасибо! |
|||
|
||||
| alhimik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.7.2007 Репутация: 1 Всего: 1 |
Сразу воспоминания randomize из Pascal...но суть в том, что Вам нужно сделать маленькое изменение:
тогда прога и верно и быстро работает... Это сообщение отредактировал(а) alhimik - 22.7.2007, 14:11 |
|||
|
||||
| Madrid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
Да, это помогло!
Но что изменилось?Я чего-то непонял? |
|||
|
||||
| alhimik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.7.2007 Репутация: 1 Всего: 1 |
В данном примере используется конструктор Random(), который в качестве источника (seed value) использует системное время. Можно предположить, что время выполнения одной итерации цикла while (b) постоянное. Так как каждый раз создается новый Random(), то может быть значение seed является каждый раз одинаковым. Соответственно генерируются серии одинаковых значений.
Как говорит докумментация - "The random number generation starts from a seed value. If the same seed is used repeatedly, the same series of numbers is generated. One way to produce different sequences is to make the seed value time-dependent, thereby producing a different series with each new instance of Random." ...но это всего лишь домыслы. Чесно говоря я не могу истолковать почему должно быть именно так, как я написал, но я знаю, что так должно быть, интуитивно... Если юзать Delphi с таким исходником:
То результат запуска приложения два раза подряд таков:
То есть можно считать что: Delphi - C# Randomize - Random() Random(100) - r.Next(0, 1000); |
||||
|
|||||
| Madrid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
Спасибо!Вроде разобрался!
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |