[Mono-list] GUI, threads, etc...

Moritz Angermann moritz.angermann@gmx.net
Tue, 16 Mar 2004 04:32:57 +0100


Firstly: Thank you!

As you might have seen,
The basic idea behind this is having a long-time process also update the
GUI.
Miguel told me to use fork an ThreadNotify. And since I used a Threaded
model. I wondered if I were going the complete wrong way...

So if using Threads and using them as I used them in combination with
ThreadNotify is the supposed usage. I'd write an example app to show
how it's done correctly and write a small article on it. To spare
people like me searching for 3 days and nights to get a working
result.

I'd also appreciate if it is done the wrong way that someone enlightens
me with the right way.

-mo

On Mon, 2004-03-15 at 23:52, Jonathan Pryor wrote:
> Below...
> 
> On Mon, 2004-03-15 at 18:43, Moritz Angermann wrote:
> <snip/>
> > btw: does mono have something like fork( ) or are Threads for this
> > purpose adequate use?
> 
> A *direct* equivalent to fork(2)?  No.  The nearest equivalent is
> System.Diagnostics.Process, which is a fork(2)/exec(3) equivalent.
> 
> (Minor side question: what would happen if you P/Invoked out to fork(2)
> in libc.so?  Is it safe for managed apps to do that?)
> 
> I don't think fork(2) would be useful for automatically updating a
> TreeView, as you'd be creating a new process, duplicating the entire
> address space (*including* the TreeView, and everything else), and
> preventing the child process from modifying the TreeView of the parent
> process (as it's in a different address space).
> 
> So threads are probably what you want anyway, unless I'm
> misunderstanding what you're asking.
> 
>  - Jon
> 
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
-- 
----------------  contact info  ----------------
Moritz Angermann       	moritz.angermann@gmx.net
Liquid:Mint            	www.liquidmint.org
Mobile                 	+49 (0) 160 9197 5880
Home                   	+49 (0) 4322 75 12 66