C#多线程 随机数
起三个线程随机1到20之间的随机数并且避免三个线程随机出的数重复谁能帮我写一下?只要控制不重复的代码就好,,谢!!...
起三个线程
随机 1 到 20 之间的随机数
并且避免三个线程随机出的数 重复
谁能帮我写一下? 只要控制不重复的代码就好,,谢!! 展开
随机 1 到 20 之间的随机数
并且避免三个线程随机出的数 重复
谁能帮我写一下? 只要控制不重复的代码就好,,谢!! 展开
2个回答
展开全部
下面的方法就会控制数字不会重复:
object obj = new object();
int count = 20;
IList<int> num = new List<int>();
//集合里存放1-20的数字
private void MyMethod()
{
for (int i = 1; i < 21; i++)
{
num.Add(i);
}
}
//生成随机数,保证不会数字重复
private int CreatRandomNumber()
{
lock (obj) //防止同一时间生成同样的数字
{
Random r = new Random();
int n = r.Next(0, count);
int resultnum = num[n]; //用随机数做集合下标取集合中数字
num.RemoveAt(n); //去除已经获取了的数字,之后就不会重复了
count--;
return resultnum;
}
}
object obj = new object();
int count = 20;
IList<int> num = new List<int>();
//集合里存放1-20的数字
private void MyMethod()
{
for (int i = 1; i < 21; i++)
{
num.Add(i);
}
}
//生成随机数,保证不会数字重复
private int CreatRandomNumber()
{
lock (obj) //防止同一时间生成同样的数字
{
Random r = new Random();
int n = r.Next(0, count);
int resultnum = num[n]; //用随机数做集合下标取集合中数字
num.RemoveAt(n); //去除已经获取了的数字,之后就不会重复了
count--;
return resultnum;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询