問題タブ [qtconcurrent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
534 参照

qt - メンバー関数の QtConcurrent::run() は元のインスタンスを使用しません

メンバ関数に使いたいQtConcurrent::run()のですが、インスタンスへのポインタを使っていないようです。代わりに、デフォルトのコンストラクターが呼び出されているように見えます

実行結果は次のtest()とおりです。


編集:私のインスタンスは確かに範囲外になりました。このコードは正常に動作します

0 投票する
1 に答える
366 参照

c++ - QtConcurrent マップ エラー c2440

画像のナンバー プレートを認識するためのアプリを作成しています。正常に動作しますが、コードの画像解析部分を別のスレッドに移動したいと考えています。Qt5.4を使用しています。QtConcurrent::mapドキュメントを読んだ後、画像を処理する前に、ユーザーがリストに保存されているファイル (名前のみ) をロードするため、これを使用するのが正しいと判断しました。ここにいくつかのコードがあります:

スレッドで実行されるはずの関数の定義:

マルチスレッドの使用を試みます。

filesQList<QString> resultsそれが重要な場合は、私が使用しているライブラリ内で定義された型であると定義されています。

これはエラーでコンパイルされません:

関数を次のように変更すると、次の<void>ようになります。

何が問題ですか?助けていただければ幸いです。

0 投票する
1 に答える
313 参照

qt - インプレース配列の QtConcurrent map()

私はフロートの大きな配列を持っています。私はそれを呼び出しQtConcurrent::map()て、適切な値を変更したいと思います。

配列のコピーを作成せずにそれを行うことはできますか? map()as パラメータを取るようで、コピーを作成せずに配列からQVectora を初期化する手段が見つかりません。QVector

0 投票する
0 に答える
327 参照

multithreading - Qt/ QtConcurrent 、スレッドの使用時に HTTP が終了しない

簡単な HTTP get 操作を行います。JSON の結果を取得し、それを解析します。関数でこの操作手順を使用します。 QtConcurrent::run 、 HttpGet Function で関数を開始します。

ここで、Http get リクエストを開始し、json の結果が解析されるまでループで待機します。この関数を次のように呼び出します。

フリーズ画面を回避するためにスレッドを使用しますが、スレッドは決して終了しません。

0 投票する
2 に答える
1205 参照

c++ - Qt でバックグラウンド (QtConcurrent) から UI を更新する

バックグラウンドでログ ファイルを読み込んで、テキストを更新しようとしています QTextEdit。以下はコードです。しかし、信号を送信すると、UI がフリーズします。ここでQtConcurrentで間違っていることを誰かが指摘できますか?

信号をスロットに接続します

ログ ボタン イベントの更新

バックグラウンド タスク

スロット

編集: ファイルのオープンに失敗した場合に UpdateReaderLog() からポップアップを表示するシグナルを送信するように変更

0 投票する
1 に答える
277 参照

multithreading - QtConcurrent::仮想クラスメンバーで実行する

そこで、マルチスレッドとタイマーの面倒な詳細をすべて処理するタイマー クラスをカプセル化しようとしています。

これが私のコードです:TimedEvent.h

TimedEvent.cpp

TimedEvent が基本クラスになり、派生クラスを非常に簡単に作成できるという考えでした。

問題は、QtConcurrent::run 呼び出しに何を渡すかを理解できないことです。これが可能かどうかはわかりません。QTConcurrent::run 呼び出しを派生クラスに移動することもできますが、これらの派生クラスがいくつかあると予想されます。

どんなアイデアでも大歓迎です。

K.

0 投票する
1 に答える
5067 参照

qt - Qt 、 QMutex: ロックされたミューテックスを破棄してアプリがクラッシュする

QNetworkAccessManager を使用して http 操作 (get、post など) を行います。いくつかの「取得」操作を並行して実行します。このために、QtConcurrent::run(this,&RestWebservice::GetHTTPData) を使用して複数の HTTP 操作を行います。私の問題は、HTTP操作が完了する前にアプリを閉じると、アプリがクラッシュします.Application Output write this line QMutex: destroying locked mutex then write The program has unexpectedly finished. Iゲスト問題はこの行で発生します

でも、QtCreater Debugger は VS に似ていないのでよくわかりません。ちなみに、GetHTTPData は別のクラスにあります。

ネットワーク操作を開始するためのマイ コード:(MobileOperation.cpp)。たとえば、getUserAccount メソッドで http 操作を開始します。

クラスの MY CODE HTTP 操作の場合: