Advertisement
Guest User

Untitled

a guest
Dec 7th, 2014
1,510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. internal static class RandomNumber
  2. {
  3. private static Random r = new Random();
  4. private static object l = new object();
  5. private static Random globalRandom = new Random();
  6. [ThreadStatic]
  7. private static Random localRandom;
  8. public static int GenerateNewRandom(int min, int max)
  9. {
  10. return new Random().Next(min, max);
  11. }
  12. public static int GenerateLockedRandom(int min, int max)
  13. {
  14. int result;
  15. lock (RandomNumber.l)
  16. {
  17. result = RandomNumber.r.Next(min, max);
  18. }
  19. return result;
  20. }
  21. public static int GenerateRandom(int min, int max)
  22. {
  23. Random random = RandomNumber.localRandom;
  24. if (random == null)
  25. {
  26. int seed;
  27. lock (RandomNumber.globalRandom)
  28. {
  29. seed = RandomNumber.globalRandom.Next();
  30. }
  31. random = (RandomNumber.localRandom = new Random(seed));
  32. }
  33. return random.Next(min, max);
  34. }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement