Monatsarchive: Juni 2013


Random Crash

System.Random ist nicht Thread-sicher! Bei „gelichzeitigem“ Aufruf aus verschiedenen Threads, gibt Next() irgendwann nur noch „0“ zurück. Um dies zu verhindern, muss entweder jeder Aufruf an eine Random-Instanz durch „lock ()“ umschlossen werden: lock (MyRandomMember) { MyRandomMember.Next(); } oder jeder Thread erhält eine eigene Random-Instanz, was bequem über das Attribut „ThreadStatic“ möglich ist: [ThreadStatic] private […]