当我调用 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 人,这些东西对我来说有点陌生。
总之,我希望有一个类,具有多个公共函数,所有这些函数都可以在它们自己的线程上调用。我认为。也许我走错了路。