[Armadillo:05777] Re: Armadillo-440 GUI 開発ツール
Yasushi SHOJI
email@hidden
2010年 9月 6日 (月) 16:48:54 JST
At Mon, 06 Sep 2010 13:28:18 +0900,
MasakiAoyama wrote:
>
> 私も500FXでGtk+を使って、演算処理の途中経過を表示させるための簡単な画面ア
> プリを作成しましたが、次のようなところで引っかかって苦労したのでご参考まで。
答えれるかわかりませんが、聞いてください。(T-T)
# マニュアルがないこと自体、だめなんですけど…。
> 問題
> 子スレッドから画面のリスト(一覧表)を更新しようとすると、再描画がうまくいか
> なかったり、何度かやってるうちに落ちる。
Gtk+は、Thread safe ではなく、Thread awareです[1]。なので、複数のスレッ
ドから Gtk+を扱ってはいけません。
> 解決策
> 結局、画面の再描画は親スレッドでgtk_timeout_add()を使ってタイマイベントを
> 駆動し、そこでグローバル変数のフラグを読んでそれに合わせて画面を描き換える。
同じことをやるための機能が、Gtk+に含まれていますよ。
GtkWidget::queue_draw_area()です[2]。
[1]: http://library.gnome.org/devel/gdk/stable/gdk-Threads.html#gdk-Threads.description
[2]: http://library.gnome.org/devel/gtk/stable/GtkWidget.html#gtk-widget-queue-draw-area
--
yashi
armadillo メーリングリストの案内