問題タブ [packaged-task]
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.
c++11 - packaged_task::set_exception に相当するものはありますか?
私の仮定は、それpackaged_task
にはpromise
下があるということです。タスクが例外をスローした場合、それを関連する にルーティングするにはどうすればよいfuture
ですか? だけでpromise
呼び出すことができますset_exception
– に対して同じことを行うにはどうすればよいpackaged_task
ですか?
c++ - C++ で packaged_task とスレッドを関連付ける
全て
私はクラスを持っています:
そして主な機能:
このコードは、データの異なる部分に対して同じ操作を実行する 3 つのスレッドを作成できると思います。ただし、スレッド t1 の定義では、コンパイラは次のエラーをポップします。
何が間違っているのか、どうすれば正しく行うことができますか?
よろしくお願いします。
長いです
c++ - packaged_task と async の違いは何ですか
C++11 のスレッド モデルを使用しているときに、次のことに気付きました。
と
まったく同じことをしているようです。std::async
で実行した場合、大きな違いがある可能性があることは理解していますがstd::launch::deferred
、この場合はありますか?
これら 2 つのアプローチの違いは何ですか? さらに重要なことは、どのユースケースでどちらを使用する必要があるのでしょうか?
multithreading - Runnable implementation using packaged_task in c++11
I am trying to create a Runnable interface in c++11 using packaged_task, with child class overriding run() function. I don't know why this code is not compiling. Its giving error related to type argument.
/usr/include/c++/4.8.1/functional:1697:61: error: no type named ‘type’ in ‘class std::result_of()>’ typedef typename result_of<_Callable(_Args...)>::type result_type;
Below is my code snippet. Could someone plz give me some information on this error and whether implementing Runnable this way is a right way to proceed ?
c++ - 独自のスレッドで実行されている C++11 packaged_task には、future を取得するために join() が必要です
最近入手した C++11 の本から、123 ページ (packaged_task 5.3.5.2) の例をビルドしようとしています。これを XCode で機能させるためにいくつかの作業を行った後、いくつか質問があります。
まず、packaged_task ctor に関数ポインターを渡す必要があるようです。テキストにアンパサンドが表示されていないため、タイプミスか、標準の変更が遅れている可能性がありますか?
次に、さらに重要なことに、get を呼び出して sigabrt の取得を回避できるように thread.join(s) を追加する必要があり、プロセスは何も出力せずに終了します。スレッドが値を返すまで get future の呼び出しがブロックされるという印象を受けましたが、そうではないようです。結合を追加すると、コードの非同期 (非ブロッキング) の性質に逆らうようにも見えます。必要に応じて、将来に参加できないのはなぜですか? ドキュメントから読み取ると、get は暗黙的に待機を呼び出し、コードに待機を追加しても、sigabrt が発生することが示されています。これは非常に不可解です。
私は c 言語方言 c11、-std=gnu++11 および libc++ (c++11 サポート付き) を使用しています。運がない他のオプションを試しました(gnuc ++を使用している場合、見つかりません)。これは、コードを作成するために使用できる唯一の組み合わせのようです。XCode は、c++11 をコンパイルするために必要なものについて非常にうるさいです。
事前にご協力いただきありがとうございます。
これは、コードを実行するための私の「修正」を含む本のテストケースです。
c++ - std::packaged_task は破壊の約束を破っていませんか?
パッケージ化されたタスクを使用しているときに、非常に奇妙なことに遭遇しました。~packaged_taskを読むと、 astd::packaged_task
が実行される前に a が破棄された場合、約束が破られ、将来から結果を取得しようとすると がスローされるという印象を受けstd::future_error
ます。
ただし、Visual Studio 2013 では、そうではないようです。次のコードを使用します。
std::future_error
オンになることを期待していますf.get()
が、代わりにブロックされ、パッケージ化されたタスクが実行されるのを待ちます。
別のコンパイラを試す: http://ideone.com/Wt0WOcは実際にstd::future_error("Broken promise")
...をスローします。
Visual Studio 2013 にバグがありますか、それとも何か見落としていますか?
multithreading - std::packaged_task でメンバー関数を std::thread (std::async ではない) で使用する
std::thread から std::future を取得しようとしていますが、そうする唯一の方法 (?) は std::packaged_task を使用することです。さて、さらに std::thread で呼び出したい関数はクラスメンバ関数です。このスレッドUse member function in std::packaged_task を見つけることができましたが、 std::thread の代わりに std::async を使用しています。その投稿に基づいて何かをコンパイルしようとしましたが、ここでこのコードをコンパイルしようとすると:
MSVC 2013 で次のエラーが発生します。
助けていただければ幸いです!ありがとうございました