私のコードでは、MySqlデータベースとクエリデータを接続しています。
このデータを使用してグラフィックシーンを描画します。SQL接続とGUIの問題
データベース接続が偽を返す場合、
私のプログラムは(db.Open())
でデータベースを接続しようとします。
一方、guiはロックされています。
この問題についてご意見はありますか?
どうすれば解決できますか?
私のコードでは、MySqlデータベースとクエリデータを接続しています。
このデータを使用してグラフィックシーンを描画します。SQL接続とGUIの問題
データベース接続が偽を返す場合、
私のプログラムは(db.Open())
でデータベースを接続しようとします。
一方、guiはロックされています。
この問題についてご意見はありますか?
どうすれば解決できますか?
これを解決するには、マルチスレッドアプリケーションを作成する必要があります。プロセスには、メインサブプロセスと並行して実行するサブプロセスのような複数のスレッドがあります(この説明のためにSlam me:P)。スレッドの詳細については、hereを参照してください。
あなたのケースでは、バックグラウンドでMySql接続を作成するスレッドを作成する必要があります(QT Docは「作成したスレッド内からのみ接続を使用できます」というメッセージ)あなたが望むウィジェットに描画します。バックグラウンドスレッドがこれを実行しているとき、アプリケーションのメイン実行サイクルは中断されず、アプリケーションは応答しなくなりません。しかし、一度に1つのMysql-Data-Fetcher-Threadが存在することを確実にするメカニズムを実装する必要があります。そうしないと混乱します(たとえば、複数のスレッドがQTでは不可能な同じ描画領域)。
QTドキュメントサイトでは、非常に良いsection about threadsが存在し、QTでそれらを実装する方法について説明します。また、スレッドプログラミングが初めての方は、外部リンクを参照する必要があります。
あなたに役立つ情報にも至っていません。 –
背景スレッドを使用してください。 – joni
バックグラウンドスレッドについて説明できますか? – tugba