[Gtk-sharp-list] waiting for an asynchronous operation to finish

Jeroen Zwartepoorte jeroen.zwartepoorte at gmail.com
Fri Sep 30 03:07:50 EDT 2005


On 9/29/05, Ben Maurer <bmaurer at ximian.com> wrote:
> > System.Threading.Thread has Suspend() and Resume() methods, but how do
> > these interact with the GLib mainloop?
>
> That would stop the thread completely. You don't want that. Basically
> Suspend/Resume == bad.
>
> What you want to do is this:
>
> Drive.Mount (delegate (bool succeeded) {
>        Application.Invoke (delegate {
>                if (!succeeded)
>                        DisplayErrorDialog();
>                else
>                        DoStuff ();
>        });
> });

The problem with that is that the location where i call Drive.Mount is
inside a TreeView TestExpandRowHandler. I need to know if the
Drive.Mount call succeeded or not before i can return from that
handler (args.RetVal determines whether or not the row can be
expanded).

If i read your code right, it just defines a new delegate which gets
called at a later stage? (the code above doesn't wait for Drive.Mount
to report back)

Jeroen


More information about the Gtk-sharp-list mailing list