вызывает функцию рандома в async рандом становится не очень рандомным?
То есть есть статичный класс у него есть зафиксированное поле Random rand = new Random()
И есть функция которая возвращает число от 1 до 9 используя этот rand
Дискорд бот вызывает эту функцию и возвращает число юзеру, но многие жалуются что это число постоянно одно и тоже(не всегда но очень часто). Хотя я проверил, вызвав метод миллиард раз и все числа выпадали примерно одинаковое количество раз. Но это было в один миг, а вот если вызывать из async с некоторым промежутком я не уверен.
Random не является thread-safe
private static ulong GenerateSeed() { unsafe { var buffer = stackalloc byte[8]; var spanBuffer = new Span<byte>(buffer, 8); using (var rng = System.Security.Cryptography.RandomNumberGenerator.Create()) { rng.GetBytes(spanBuffer); } return *(ulong*) &buffer[0]; } }
Обсуждают сегодня