[Gtk-sharp-list] Updating of a window not done right away

Michael Hutchinson m.j.hutchinson at gmail.com
Wed Sep 24 15:26:52 EDT 2008


On Wed, Sep 24, 2008 at 4:52 AM, Mathias Tausig <mtausig at fsmat.at> wrote:
> Am 23. Sep 2008 um 23:43:04 -0400, schrieb Michael Hutchinson:
>> On Tue, Sep 23, 2008 at 4:51 AM, Mathias Tausig <mtausig at fsmat.at> wrote:
>> > Hy!
>> >
>> > I wrote a class DisplayPanel (see below., which should just display some text right away. The problem is, it just doesn't do that if I start some blocking function after setting the text. If I execute
>> >
>> > Gtk.Window w = new Gtk.Window("Test");
>> > w.Show();
>> > for(int i=0;i<20;++i){
>> >        DisplayPanel dp = new DisplayPanel("",w);
>> >        dp.SetTitle(i);
>> >        Thread.Sleep(3000);
>> >        dp.Dispose();
>> > }
>> >
>> > sometimes it does display the correct text right away, but sometimes (rather unpredictable, about every third time) I get just an empty Window.
>> > Does anyone have an idea, what might cause this?
>>
>> You're blocking the main loop. The main GTK loop handles repainting,
>> firing events, etc.
>
> I know. But in my class, when calling SetTitle, I have a loop that executes RunIteration as foten as neccesary which, as far as I have understood the loop, should do all the update, as it is executed before the blocking call.

I'm not an expert on that API, but doesn't it just clear the event
queue and carry on? Ass soon as it's finished you will hit the
blocking code.

-- 
Michael Hutchinson
http://mjhutchinson.com


More information about the Gtk-sharp-list mailing list