当我调用QNetworkAccessManager :: get()或QNetworkAccessManager :: post()或许多其他方法时,程序流程会在调用后继续进行,如果我想进一步交互,比如从服务器收到的内容,我需要使用信号/插槽。这些函数是否在自己的线程中运行?但是我使用线程的时候我不得不调用类似MyClass :: start()的东西,这在调用get()或post()时不会发生。
我构建一个线程类的时候,在类中启动函数的唯一方法是通过MyClass:start()和MyClass :: run()。但是现在我有一个类,它有各种各样的函数被调用,这些函数应该在后台运行,以便主应用程序以后可以从这些函数接收信号。
假设我有这样的东西
class MyClass
{
public:
void func1();
void func2();
};
MyClass::func1()
{
// move off into other thread
// do stuff
emit signal1(data1)
}
MyClass::func2()
{
// move off into other thread
// do stuff
emit signal2(data2)
}
我应该能够直接访问MyClass :: func1或func2,如果只通过MyClass :: start()来访问它们会很麻烦。
我希望这是有道理的,我更像是一个php人,这些东西对我来说有些陌生。
总之,我希望有一个具有多个公共函数的类,所有这些函数都可以在自己的线程上调用。我认为。也许我走错了路。