2011-12-18 11 views
1

GtkTextBufferを持つGTK +アプリケーションがあります。いくつかの長い操作を実行する複数のワーカースレッドを使用します。これらのスレッドは、進捗状況をテキスト形式で報告できます。私は、ワーカースレッドのパフォーマンスの詳細を表示したいと思います。ワーカースレッドからの入力を受け取る方法を教えてください。GTK +アプリケーション:ワーカースレッドからの入力を受け取ります

ワーカースレッドから「insert-text」という信号を出すことはできますが、グーグルでは関連する例は見つかりません。どんな助けも大歓迎です。

+0

例は見つかりませんか? – ptomato

+0

ワーカースレッドから信号を発信する方法の例。私はそれを許可されましたか? –

+0

メインスレッド( 'g_signal_emit()'または 'g_signal_emit_by_name()')からシグナルを出すのと同じことです。シグナルハンドラは、GDKロックを保持したままメインスレッドから呼び出されます。 – ptomato

答えて

0

古典的なクイックアンドダーティー:同期のプリミティブによって保護されたリンクリストにステータス更新を書き込んで、GTKのメインループにタイマーでポーリングさせます。

1

UIとワーカースレッド間のメッセージングにはGAsyncQueueを使用できます。これはコミュニケーションのための非常に完成したAPIです。

+0

私はAPIを見ました(それを提案してくれてありがとう)。しかし、メインループを通して信号をプッシュする方法は私には分かりません。それらのために(タイマーまたはアイドル処理のいずれかによる)パルシングは非効率的である。面白いことが起こったときには、ちょっと情報を得たいと思っています。だから私はワーカースレッドから信号を発射することを考えました。 –

関連する問題