首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

多线程下的随机数有关问题

2012-03-06 
多线程下的随机数问题vb.net多线程下的随机数,为什么每个线程产生的随机数一样啊,哪位大哥有解决方法???**

多线程下的随机数问题
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+时间作种子

热点排行