[Mono-list] Thread interrupt : Not implemented
    Jonathan Pryor 
    jonpryor at vt.edu
       
    Wed Nov  1 05:41:50 EST 2006
    
    
  
On Wed, 2006-11-01 at 10:58 +0100, xiii29 wrote:
> In my apps, I'm using a separate thread to collect data. When it has 
> finished, I call the Sleep method.
I obviously don't know anything about your app, but this sounds
terrible.  It sounds like your other thread is within a polling loop (do
work, sleep, do work, sleep...), which is generally bad as it's
inefficient.  Worst case, if no work is available, your thread will
periodically wake up to check for the (nonexistent) work, then go back
to sleep.  This will prevent the OS from paging your program out to
disk, eat up additional battery (due to increased CPU & disk use) on
laptop systems, slow other processes down, and more.
You should instead use ThreadHandle.WaitOne() on a ThreadHandle
subclass, like System.Threading.AutoResetEvent or
System.Threading.ManualResetEvent.  The other thread can wake the
waiting thread with *ResetEvent.Set() or *ResetEvent.Reset().
Check the class documentation for more details.
 - Jon
    
    
More information about the Mono-list
mailing list