多线程下的
随机数问题 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(菜鳥也瘋狂) 的
方法有没有具体的例子?? 现在如果我在产生
随机数的时候.使用
一个Msg
Box(),弹出点信息,它产生的
随机数就不会重复的。为什么? __________________________________________________________________________ 因为他使用时间作种子,多线程之行的时间差不多,所以种子一样,
随机数也就一样 可以给每个线程
一个不同的id,然后用id+时间作种子 __________________________________________________________________________ 我用 Thread.CurrentThread.ManagedThreadId 和 DateTime.
Now.Millisecond 一起作为种子,这次
生成的不一样的,要庆祝一下。另外谢谢各位的讨论。 __________________________________________________________________________ 主線程 Dim ran As New Random(
Now.Millisecond) For i As Integer = 0 To 100 Sy
stem.Threading.ThreadPool.QueueUserWorkItem(New Sy
stem.Threading.WaitCallback(AddressOf fun),ran.Next(0,10000)) Next 子線程 Private Sub fun(ByVal i As Object) i就為要傳遞的參數 End Sub __________________________________________________________________________ 说实话,不太懂, Randomize () 多线程,单线程我用都 ok 啊 __________________________________________________________________________
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。