:main()のスレッドにないQCoreApplicationオブジェクトを作成することはできますか?このコードに続いて
#include <QDebug>
#include <QCoreApplication>
#include <QThread>
#include <thread>
int main(int argc, char *argv[])
{
// qDebug() << "Whatever"; <- uncommenting this makes the constructor to print a warning
std::thread thread([&]()
{
QCoreApplication app(argc, argv);
qDebug() << "main thread is " << app.thread();
});
thread.join();
qDebug() << "current thread is " << QThread::currentThread();
return 0;
}
これは、コンパイルし、クラッシュしない、実行時に警告なし。 QCoreApplicationはmain()のスレッドではなく作成されます。
WARNING: QApplication was not created in the main() thread.
それがメイン()のスレッドでQCoreApplicationを作成することが有効ではありません:qDebug()関数呼び出しはQCoreApplicationオブジェクトを作成する前に、コメント解除されている場合
しかし、警告が印刷されていますか?
なぜあなたはそれをしたいのか正確に教えてください。ほとんどの場合、必要はありません! –
ええ、確かにそのようなものの使い方が何であるかについての質問は良いでしょう! – sandwood