[VB.NET]多线程下的随机数问题

VB.NET源码-156个实用实例哦…… <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
多线程下的随机数问题
vb.net 多线程下的随机数,为什么每个线程产生的随机数一样啊,
哪位大哥有解决方法???

**************************************************

Private Function GetRndID(ByVal imin As Integer, ByVal imax As Integer) As Integer

Try
Dim iResult As Integer = 0
Randomize()
iResult = CInt(Int(((imax - imin) * Rnd()) + imin))
Return iResult
Catch ex As Exception
Return 0
End Try

End Function
__________________________________________________________________________
没有人能帮忙?谢谢了。Up一下~
__________________________________________________________________________
在沒有改不給種子數字時,每次新產生隨機數時都會一樣的。理解決方法有二
1)由主線程產生隨機數,并把此數傳遞給子線程。
2)同樣為主線程產生一個隨機數,這數作為子線程產生隨機數的種子數,再產生新的隨機數。
__________________________________________________________________________

每次 产生 随机数 前 使用

Randomize ()

问题解决

结帖
__________________________________________________________________________
Randomize() 没用的。每次还是都会一样的。
现在是多线程的问题...
****************************************************
chenxdb(菜鳥也瘋狂) 的方法有没有具体的例子??

现在如果我在产生随机数的时候.使用一个MsgBox(),弹出点信息,它产生的随机数就不会重复的。为什么?
__________________________________________________________________________
因为他使用时间作种子,多线程之行的时间差不多,所以种子一样,随机数也就一样
可以给每个线程一个不同的id,然后用id+时间作种子
__________________________________________________________________________
我用 Thread.CurrentThread.ManagedThreadId 和 DateTime.Now.Millisecond 一起作为种子,这次生成的不一样的,要庆祝一下。另外谢谢各位的讨论。
__________________________________________________________________________
主線程
Dim ran As New Random(Now.Millisecond)
For i As Integer = 0 To 100
System.Threading.ThreadPool.QueueUserWorkItem(New System.Threading.WaitCallback(AddressOf fun), ran.Next(0, 10000))
Next

子線程

Private Sub fun(ByVal i As Object)
i就為要傳遞的參數
End Sub
__________________________________________________________________________
说实话,不太懂,

Randomize () 多线程,单线程我用都 ok 啊
__________________________________________________________________________
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值