Ticket #1181 (new defect)
Filling a TreeView from a background thread
| Reported by: | guest | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.10.1 |
| Component: | general (Gtk+, Glib) | Version: | 0.10.1 |
| Keywords: | Cc: | marc.lisp@… |
Description
Hello,
I try to refresh the content from a TreeView? from a background thread
(created by forkIO). Basically from the background thread I call listStoreClear and several listStoreAppend from the background thread. I also use the code from 'Real world Haskell' timeoutAddFull (yield >> return True)
priorityDefaultIdle 50
So that UI call's has a effect from the background, if I update the text of a label from the background thread this seems to work however for my treeview I get the error : << There is a disparity between the internal view of the GtkTreeView?, and the GtkTreeModel?. This generally means that the model has changed without letting the view know. Any display from now on is likely to be incorrect.
(Newsreader:31777): Gtk-CRITICAL **: gtk_tree_model_sort_convert_iter_to_child_iter: assertion `VALID_ITER (sorted_iter, tree_model_sort)' failed
(Newsreader:31777): Gtk-CRITICAL **: gtk_tree_model_sort_convert_iter_to_child_iter: assertion `VALID_ITER (sorted_iter, tree_model_sort)' failed Newsreader: user error (ListStore?.getRow: iter does not refer to a valid entry)
Apparently I do something wrong, so how do you update a TreeView? from a background thread (in C# or Java we must do the update on the thread of the UI but I do not seem to find a function to do this.
Any help is really appreciated.
Thanks
Marc Mertens