Я написал себе многопоточный случайный генератор
public static class MyRandGen
{
private static Random GlobalRandom = new Random();
[ThreadStatic]
private static Random ThreadRandom = new Random(SeedInitializer());
private static int SeedInitializer()
{
lock (GlobalRandom) return GlobalRandom.Next();
}
public static int Next()
{
return ThreadRandom.Next();
}
}
Однако он бросает мне исключение NullReferenceException при запуске Next(), которое я не понимаю. Это как-то вроде инициализации полей ThreadStatic?
Я знаю, что могу просто проверить, было ли поле инициализировано каждый раз, но это не то решение, которое я ищу.