> The code in the 'Go' method of Blinker is... > > public void Go ( ) > { > _stop = false; > while ( !_stop ) > { > SetPinState(on); > Thread.Sleep ( TimeSpan.FromMilliseconds ( _onIntervalMs > ) ); > SetPinState(off); > Thread.Sleep ( TimeSpan.FromMilliseconds ( > _offIntervalMs ) ); > } > } > > public void Stop () > { > _stop = true; > > }
Don't forget that for this to work reliably, _stop must be declared "volatile". Either that or you must lock a synchronization object while accessing the _stop variable. (You cannot reliably access non-volatile state that is shared across different threads without locking.) Fabian =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com