今天写了段c#代码遇到一个想不通的问题

我想随机产生几个(xyz)坐标到数据库里运行以后发现产生数据有重复我就设断点调试一下结果发现只要是逐条运行结果完全正确但是逐过程或者取消断点就会有重复我设置产生10条数据... 我想随机产生几个(x y z)坐标到数据库里 运行以后发现产生数据有重复 我就设断点调试一下 结果发现只要是逐条运行 结果完全正确 但是逐过程 或者取消断点 就会有重复 我设置产生10条数据 有时候是 2到10条是重复的 有时候是 3-6 7-10是重复的 到现在没发现是哪的问题 展开
 我来答 举报
Ps脸粉粉
2013-04-07 · TA获得超过1563个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:114万
展开全部
楼主你好:

C#中的Random .Next方法是有这个问题的,如果你不加断点,循环产生随机数时,Next的反应时间很慢,但是你的循环很快,这就造成你的循环所产生的随机数都会是一样的,即有重复,

楼上说的我试了,仍然不行,这个可以使用下面代码进行解决:
List<int> li = new List<int>(); for (int i = 0; i < 10; i++)
{

Random ra = new Random(unchecked((int)DateTime.Now.Ticks));

li.Add( ra.Next(100, 999));
Thread.Sleep(1);
}

希望对你有帮助,都是我以前遇到过的问题,

望采纳,谢谢。
是小白啊2k
2013-04-07 · TA获得超过2566个赞
知道小有建树答主
回答量:1183
采纳率:0%
帮助的人:1160万
展开全部
可以给Random一个系统时间做为参数,以此产生随机数,就不会重复了
Random ra=new Random(unchecked((int)DateTime.Now.Ticks));
ra.Next(100,999);
1 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
幸巴达
2013-04-07 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2454万
展开全部
你的new Random对象做成static类型,放在函数之外就行了。
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
bxfc
2013-04-07 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:682万
展开全部
话说,你的这东西是不是多线程生成的
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式