public void Pulse ()
{
// If the thread was stopped then set it in use and restart it
int result = Interlocked.Exchange (ref started, 1);
if (result != 0)
return;
if (!isLocal) {
if (this.workerThread.ThreadState != ThreadState.Unstarted) {
threadInitializer ();
}
workerThread.Start ();
}
}