Pisałem sobie wielowątkowych generator losowyInicjowanie ThreadStatic pole nadal powoduje NullReferenceException
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();
}
}
jednak rzuca mi NullReferenceException na wypalanie Next(), która nie rozumiem. Czy w jakiś sposób inicjowanie pól ThreadStatic jest zabronione?
Wiem, że mogę sprawdzić, czy pole zostało zainicjowane za każdym razem, ale to nie jest rozwiązanie, którego szukam.
Dlaczego nie używać [ '' Lazy ma wątku bezpieczne opcje] (http://msdn.microsoft.com/en-us/library/ee808725.aspx) –
Mgetz
swoje prace kodu bez wyjątku dla mnie. VS2010 \ 4.0 –
Dlaczego nie użyć 'Rngcryptoserviceprovider', który jest ThreadSafe –