一个非常基本的问题。文档提到QNetworkAccessManager中的所有方法都是可重入的。如果是这样的话,在没有锁的QRunnable中执行get()方法合法吗?我的代码应该是这样的:
class MyClass: public QRunnable
{
void run()
{
...
QNetworkAccessManager nam;
QNetworkReply* reply = name.get(request) // No Read-write lock.
...
}
};发布于 2011-05-07 03:15:05
来自the Qt documentation
...如果一个类的成员函数可以同时从多个线程中安全地调用,那么这个类就是可重入的,只要每个线程使用该类的不同实例即可。
因为您每次都使用一个不同的实例(在run()中在堆栈上创建的实例),所以您是安全的。
发布于 2011-05-08 06:41:01
顺便说一句,如果您只想让GET请求是异步的,那么QNetworkAccessManager已经是异步的了(文档中已经这么说了)。
https://stackoverflow.com/questions/5915771
复制相似问题