2009-08-24 1 views
3

我々は(ステートマシンとして表すことができる)UIとロジックを持っを実装する方法について説明します。このステップマシンのいくつかのステップ間の遷移は長い(IOバウンド)。移行が進行中のすべての段階でUIスレッドを盗み出すことは望ましくありません。したがって、我々は別のスレッドでこの遷移を実行し、遷移が終了するとUIを更新する方法を探しています。ブーストステートチャートライブラリ - 時間のかかる遷移私たちのプロジェクトで

私は現在、このようなロジックを実装するオプションの1つとして、ブーストステートチャートライブラリを評価し、私はそれを使用して、このような長時間の移行機能を実装する適切な方法何お尋ねしたいのですが?

ありがとうございました。状態間

答えて

2

遷移は、イベントではなく、長い操作によってトリガされなければなりません。

あなたは一切の長い事業を展開していロジックを持っている場合、そうあなたが応答しなくなるだろう、独自のスレッドにUIを置く方が良いでしょう。

あなたはいつも自分のスレッドに2台の独立したステートマシンを持って、そしてお互いをトリガする各スレッド間通信を使用することができます。メッセージの受け渡しは、おそらく最も信頼できるアプローチです。

boost::interprocess::message_queueはやり過ぎかもしれないが、それは動作します)
関連する問題