[Gtk-sharp-list] Issue with Mono/GTK# app after threading (NewB)

john at meadowsonline.com john at meadowsonline.com
Thu Jul 14 07:30:16 EDT 2005


Hi Paulo:

I have been trying to find good info about this, and the sample code listed in
my earlier post does use threadnotify (for example in CopyFileToPlayer).

Based on these snippets, if you see me doing something obviously wrong please
let me know -- I have hit a brick wall on this issue.

Thanks for writing!

John

Quoting Paulo Pires <paulo.pires at vodafone.pt>:

> Try reading about Gtk.ThreadNotify
>
> This topic should be a must-know when starting to write threaded Gtk#
> programs.
>
> Paulo Pires
>
>
> Ter, 2005-07-12 às 05:44 -0400, John Meadows escreveu:
>> I am working on my first application written in Gnome/GTK# and mono
>> 1.1.8 / Monodevelop; and I have run into an issue (if this is a NewB
>> issue, I apologize in advance).
>>
>> This application has a couple of methods that are run via threads
>> (basically for filecopying, as my app. is a utility for managing MP3
>> files on my MP3 player), and I have tried to use the examples I have
>> seen online. Everything seems to work OK, but after I run one of these
>> threaded methods the first time I see one of the following issues:
>>
>> 1. If I display a FileSelection widget it comes up, but the text inside
>> the widget (the list of files basically) is not visible, even though it
>> appears to be there (as I have some debug code that fires off  a line to
>> the console whenever a file is selected, so I think something is there
>> even if it is not displaying)
>>
>> 2. The main window of my application also uses a Treeview control. In a
>> manner similar to #1 above, after running one of my threaded methods
>> once, if I run a method to populate the treeview, neither the column
>> headings or the test for the items in the Treeview appear (although
>> again I have debug code writing to the console that shows there are
>> items in the Treeview; it's just the text that is not appearing properly).
>>
>> I am not sure where to go with this from a debugging point of view. I
>> have put some sample code below, as maybe the issue is there, but I
>> don't know, and of course I did not want to post everything. Is there
>> some other refresh I need to call?
>>
>> Any suggestions on what to try would be most appreciated!! Thanks in
>> advance!
>>
>> Here's some code
>>
>> //copy single file to player
>>
>>     void CopyFileToPlayer (object sender, EventArgs a)
>>     {
>>         clearLabel(); // resets status labels on window
>>         lblStatus.Text = "File Copying in Progress...";
>>         buttonCopySingle.Sensitive = false;
>>         Thread oThread = new Thread(new ThreadStart(runSingleCopyThread));
>>         oThread.Start();
>>         notify = new ThreadNotify (new ReadyEvent (ready));
>>         while (!oThread.IsAlive);
>>     }
>>
>> the method above calls:
>>
>> //copy single file from playlist to player
>> private void runSingleCopyThread()
>> {
>>         fc = new FileCommands(); //this is an assembly  use for copying
>> the MP3 files
>>         lblStatus.Text = "File Copying in Progress...";
>>         fc.currentTrackFile = currentTrack;
>>         fc.mp3PlayerPath = txtPlayerPath.Text +
>> System.IO.Path.DirectorySeparatorChar.ToString();
>>         fc.copyFile();
>>         if(fc.oppStatus != "Copying Files...")
>>         {
>>             lblStatus.Text = fc.oppStatus;
>>         }
>>         notify.WakeupMain ();
>>     }
>>
>> The notification method is:
>>
>> //called when file copying threads are done
>> void ready ()
>> {
>>      buttonCopy.Sensitive = true;
>>      buttonCopySingle.Sensitive = true;
>>      lblStatus.Text = fc.oppStatus + ": " + fc.fileCopyCount  + "
>> file(s) Copied";
>>      this.ShowAll();
>>  }
>> _______________________________________________
>> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
>
>





More information about the Gtk-sharp-list mailing list