0

QNetworkAccessManager を使用してインターネットにアクセスする Qt アプリケーションは、インターネット接続が機能していない場合、メイン ウィンドウを閉じた後に終了しません。

サンプル アプリケーション (Qt 4.8、MSVC2010、Win7 x64 でテスト済み):

#include <QtGui/QApplication>
#include <QNetworkReply>
#include <QMainWindow>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow mainWindow;
    mainWindow.show();
    QNetworkAccessManager * pManager = new QNetworkAccessManager;
    QNetworkReply * pReply = pManager->get(QNetworkRequest(QUrl(
                                           "http://www.google.com")));
    pReply->abort();
    delete pReply;
    delete pManager;
    // If there is no internet connection, the application will stay alive
    // forever after closing the main window.
    return a.exec();
}

何か不足していますか、それともバグですか? はいの場合、アプリケーションを確実に終了させるために、どのような回避策をお勧めしますか?

編集: 私は自分自身を修正する必要があります: サンプル アプリケーションは、メイン ウィンドウを閉じた後、約 13 秒間しか存続しません。QApplicationオブジェクトが(私の実際のアプリケーションの場合)を使用して割り当てられていた場合、それは永遠に生き続けます。new

4

0 に答える 0