1

当我调用 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 人,这些东西对我来说有点陌生。

总之,我希望有一个类,具有多个公共函数,所有这些函数都可以在它们自己的线程上调用。我认为。也许我走错了路。

4

0 回答 0