我有一个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