[Gtk-sharp-list] Application.Invoke
Felipe Almeida Lessa
felipe.lessa at gmail.com
Tue Jan 9 08:04:10 EST 2007
On 1/9/07, Robert Schillinger <robby.schillinger at t-online.de> wrote:
> the invoked delegates are only executed when some keystrokes or mousemoves
> are done.
I had a similar problem, too. To workaround it, I added a timeout that
forces the execution just like mouse movement and other events do.
Here's a snippet
// Request updates
Thread t = new Thread(delegate () {
UpdateManager.CheckForUpdates();
});
t.Start();
// This will generate events so that RunIteration doesn't block forever
GLib.Timeout.Add(25, delegate {
return t.IsAlive;
});
The timeout will force the Invoke to be done with 25 ms of delay at
maximum, which is acceptable, and without any CPU harm. When the
thread exits, t.IsAlive is false and the timeout is gone. Works like a
charm.
Good luck,
--
Felipe.
More information about the Gtk-sharp-list
mailing list