QNetworkAccessManager::get() または QNetworkAccessManager::post() または他の多くのメソッドを呼び出すと、呼び出し後にプログラムフローが続行され、サーバーから受信したものを取得するなど、さらに対話が必要な場合は、シグナル/を使用する必要がありますスロット。これらの関数は独自のスレッドで実行されますか? しかし、私がスレッドを使用したときは、get() または post() を呼び出したときに起こらない MyClass::start() のようなものを呼び出さなければなりませんでした。
私がスレッド化されたクラスを構築したとき、クラスで関数を開始する唯一の方法は、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の人なので、これらのことは私にとって少し異質です。
つまり、複数のパブリック関数をすべて独自のスレッドで呼び出すことができるクラスを探しています。おもう。多分私は間違った軌道に乗っています。