我有一個QT應用程序,運行2多個線程。qrand不生成隨機數
線程內我使用qrand函數來生成一個隨機數。以下是用於獲取數字的代碼,其中m_fluctuations max是double。
int fluctuate = qrand() % (int)(m_FluctuationMax * 100);
我試着在主線程和線程類中添加下面的代碼。
QTime now = QTime::currentTime();
qsrand(now.msec());
現在的問題是,每當應用程序啓動時,生成的值總是相同的。
它們不應該不同,因爲種子是由'currentTime()'設置的。
感謝
僅供參考:由於'qsrand()'[存儲線程本地存儲中的種子](http://doc.qt.nokia.com/latest/qtglobal.html#qsrand)(每個線程的獨立值)。在調用構造函數時,種子將在一個線程中初始化並在另一個線程中使用。將調用放入'run()'方法時,種子將在調用'qrand()'的同一個線程中初始化。 – 2011-10-01 04:57:50