Hello, > Thanks Miguel, > > Now I have tried to use a little C program (attached) which uses printf > and sleep(1). The usage is 'foo 4' and prints 4 strings, one every second. > > The situation is just the same, I can't understand why the command ping > works fine and my foo program not. The standard out and the TextView are > refreshed at the end of the execution of foo.
Because the variables are captured. For details, you can read the C# 2.0 specification which explains it in detail. Basically the variable is *shared* between the two threads, but Application.Invoke is called with a timeout, so by the time it is called the shared variables have already changed their meaning. So you have a situation where you have shared data with no locking of any kind. Use a synchronized queue to pass data from one side to the other for example instead of sharing the variable. _______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
