多线程下的随机数问题
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
[解决办法]
在有改不子字,每次新生都一的。理解方法有二
1)由主程生,并把此子程。
2)同主程生一,作子程生的子,再生新的。
[解决办法]
因为他使用时间作种子,多线程之行的时间差不多,所以种子一样,随机数也就一样
可以给每个线程一个不同的id,然后用id+时间作种子