[Mono-dev] [Gtk.Application.Invoke] Thread to up date a Gtk.Label

David Arnaud-Goddet david.goddet at gmail.com
Tue Sep 11 10:33:18 EDT 2007

Hi all,

I have a problem (again and again...) with my mono application.
After having created a GUI with gtk#, and configured a serial port
connection, now I have to mix these 2 applications!
In fact I would like to set the text of a label to indicate the state of the
serial port.
I created a thread which do that but the label aren't update properly.
I read this page : http://www.mono-project.com/Responsive_Applications but
my english level isn't very high. So I understand that:
=> the operations cross thread are not allowed (a thread can't modify the
object's properties which another Thread has created).
=> I must use delegate.

That why I do that : (but it doesn't work!!!)

t = new System.Threading.Thread(new ThreadStart(thread_Process));

private void readData_Clik(object sender, System.EventArgs e)

private void thread_Process()
                                               myLabel.Text = "The serial
port is open";
        string[] rxdata = new string[];
        rxdata = ReadData();
                                               myLabel.Text = "The data have
been read";
                                               labelVal1.Text = rxdata[0];
                                               labelVal2.Text = rxdata[1];
                                               myLabel.Text = "The serial
port is close";

The labels are not update each time! Moreover the code execution time is
slower than if I do that not in a thread...
I don't understand.

Thanks in advance.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20070911/49430ae2/attachment.html 

More information about the Mono-devel-list mailing list