new Random().Next(1, 100); 多线程同时执行结果很高概率相同,
生活随笔
收集整理的這篇文章主要介紹了
new Random().Next(1, 100); 多线程同时执行结果很高概率相同,
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/// <summary>/// new Random().Next(1, 100); 多線程同時執行結果很高概率相同,/// 是用的當前時間為seed,時間相同結果相同/// /// 解決隨機數重復問題/// 同時模擬遠程請求的隨機延時/// </summary>public class RandomHelper{/// <summary>/// 隨機獲取數字并等待1~2s/// </summary>/// <returns></returns>public int GetRandomNumberDelay(int min, int max){Thread.Sleep(this.GetRandomNumber(500, 1000));//隨機休息一下return this.GetRandomNumber(min, max);}/// <summary>/// 獲取隨機數,解決重復問題/// </summary>/// <param name="min"></param>/// <param name="max"></param>/// <returns></returns>public int GetRandomNumber(int min, int max){Guid guid = Guid.NewGuid();//每次都是全新的IDstring sGuid = guid.ToString();int seed = DateTime.Now.Millisecond;for (int i = 0; i < sGuid.Length; i++){switch (sGuid[i]){case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':case 'g':seed = seed + 1;break;case 'h':case 'i':case 'j':case 'k':case 'l':case 'm':case 'n':seed = seed + 2;break;case 'o':case 'p':case 'q':case 'r':case 's':case 't':seed = seed + 3;break;case 'u':case 'v':case 'w':case 'x':case 'y':case 'z':seed = seed + 3;break;default:seed = seed + 4;break;}}Random random = new Random(seed);return random.Next(min, max);}}
總結
以上是生活随笔為你收集整理的new Random().Next(1, 100); 多线程同时执行结果很高概率相同,的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阳台适合铺贴哪种瓷砖?阳台装修先封阳台还
- 下一篇: 腾讯哪个软件可以借钱