Qt 的文档指出所有 QDateTime 函数都是可重入的,这在 Qt 术语中意味着如果您在另一个线程中创建 QDateTime 的新对象,您可以安全地使用它。但是以下静态成员是否线程安全:QDateTime::currentDateTime 和 QDateTime::fromTime_t?
辅助线程中的代码:
// Is line below thread safe?
QDateTime tDateTimeNow1 = QDateTime::currentDateTime();
// The below code should be no different then the one above..
QDateTime tDateTimeNow2;
tDateTimeNow2 = tDateTimeNow2.currentDateTime();
我对本文http://doc.qt.nokia.com/4.7-snapshot/thread-basics.html中的以下声明感到困惑:“QDateTime::currentDateTime() 在 Qt 中未标记为线程安全文档,但是我们可以在这个小例子中使用它,因为我们知道 QDateTime::currentDateTime() 静态方法没有在任何其他线程中使用。”
如果 QDateTime::currentDateTime() 不能在辅助线程中使用,那么我们如何以线程安全的方式创建具有当前日期时间的 QDateTime 对象?
以下是与上述类似的其他静态成员函数,我不知道它们是否可以在线程中安全使用:1)QTimer::singleShot 2)QString::fromUtf8 3)QString:number