問題タブ [qfuture]

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 に答える
148 参照

c++ - QList で QtConcurrent::map() 関数を使用するとセグメンテーション違反が発生する

私はQtConcurrentライブラリに慣れています。MainWindowマルチスレッドの実際の例をシミュレートするために関数を実行する UI ( ) があります。

私が使用している QtConcurrent::map() 関数には、次のものが必要です

  1. イテレータまたはシーケンス、私の場合はQListを使用しています。
  2. さらに、MapFunctor (lambdas* をサポートする) が必要ですが、この目的のために、テスト用の静的メソッドに固執することを選択しています。

私が試したこと

両方の map() 関数を使用しようとしました (最初の関数はコメントなしのままです)

Sequence と MapFunctor を検索しようとしましたが、あまり役に立たないテンプレートでしか見つけることができなかったため、直感を使ってそれを理解する必要がありました。

コード:

私のどこかでMainWindow.cpp

すべてを開始するためのコード

問題:

このコード スニペットを実行すると、SEGVがここに表示されます

スタックトレース (デバッガーからコピー)

記録として、これに関連する別の質問がありますが、ほとんどの場合、使用可能なソリューションは提供されません。

この SEGV が表示されるのはなぜですか? このアクセス違反の原因は何ですか?