Как генерировать рандомное число без дублей

SoUp1

Client
Регистрация
15.09.2013
Сообщения
134
Благодарностей
41
Баллы
28
Всем привет, требуется генерация рандомого числа в многопотоке.
Делаю это так:
C#:
int number = new Random().Next(1,10000);
Но при запуске в 20 потоков встречаются дубли

Пробыл использовать лок:
C#:
lock(SyncObject)
{
   int number = new Random().Next(1,10000);
}
Но не помогло
Как это можно решить?
 

Вложения

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Всем привет, требуется генерация рандомого числа в многопотоке.
Делаю это так:
C#:
int number = new Random().Next(1,10000);
Но при запуске в 20 потоков встречаются дубли

Пробыл использовать лок:
C#:
lock(SyncObject)
{
   int number = new Random().Next(1,10000);
}
Но не помогло
Как это можно решить?
можно создать список в файле со значениями от 1 до 10000. Брать из него рандомную строку с удалением
 
  • Спасибо
Реакции: SoUp1

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
И ещё. Сам концепт рандомного числа подразумевает повторы
 
  • Спасибо
Реакции: shpak и SoUp1

SoUp1

Client
Регистрация
15.09.2013
Сообщения
134
Благодарностей
41
Баллы
28
можно создать список в файле со значениями от 1 до 10000. Брать из него рандомную строку с удалением
Спасибо, но так не подойдет.
Мне нужно в общем коде из списка брать рандомною строку, а максимальное число для генерации - количество строк в списке
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Спасибо, но так не подойдет.
Мне нужно в общем коде из списка брать рандомною строку, а максимальное число для генерации - количество строк в списке
Ну так получи кол-во строк, а потом сгенерируй в цикле с счетчиком в список.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Спасибо, но так не подойдет.
Мне нужно в общем коде из списка брать рандомною строку, а максимальное число для генерации - количество строк в списке
будет проще, если ты опишешь полностью задачу. Пока это похоже на какой-то замудрёный способ брать случайную строку из файла
 

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