私はQtで知っているので、信号の後にスロットに入れることができますが、後でコードを編集するときは、多くの再編が必要となり、事態が複雑になる可能性があります。例えば言うように信号は、Qtの中に放出されるまで プログラムがQtでシグナルを待つ最も簡単な方法は何ですか?
は、あなたのプログラムを保持するために、より簡単な方法があります:またdownloadImage();
Qt::waitForSignal(downloadImageFinished());
editImage();
。なぜこの作品のようなものはありません:
// bool isFinished();
downloadImage(); // When done, isFinished() returns true;
while (!isFinished()) {}
editImage();
?ありがとう。
あなたは間違った質問をしています。私たちの周りの世界は単純ではなく、線形に進化しません。物事は非同期的に起こる。これを反映するようにコードを構造化する必要があります。 質問に表示される疑似同期コードは、暗黙の状態マシンです。ステートフルな動作を明示的にすることで、より明確で柔軟性が増します。 *多くのリストラを必要とし、事を複雑にする可能性があります*あなたが間違っている場合のみ。あなたがしようとしていることのより完全な例を得るためにあなたの質問を編集してください。そうすれば、複雑さの根拠に欠けている前提に対処できます。 –
@KubaOber場合によっては、プログラムを終了する前に、すべてのアクティビティが終了するのを待って、すべてのロックがロック解除されるのを待たなければならないことがあります。私は最初にユーザーが 'X'ウィンドウボタンを押して停止しないで大量のビデオを処理していたときに実行しました - 多くのスレッドが稼働していて、多くのリソースが割り当てられ、mutexがロックされていないときにシャットダウン時に時折クラッシュと警告正しく。 –
ユーザーがウィンドウを閉じたい場合は、そのウィンドウが閉じられるかどうか、そしてコードがユーザーに提供するフィードバックについて完全に制御できます。 Leontyev、あなたは非常に具体的な質問をしているようです。スレッドやその他のものを作成し、ロックを取得し、問題を実証する新しい自己完結型の質問を投稿することができます。 <200行に収まります。それでは、あなたが期待する問題を回避する解決策を提示することができます。そうでなければ、話すのは抽象的すぎる。 –