si ho fatto una roba simile... ma con un contatore di stato.. però avevo usato questo codice

public static void Frame1()
{
Semaforo.WaitOne();

if(ActiveThread!=1)
{
return;
}

Semaforo.Release();
}


sì, la sequenza così viene seguita... ma quel "return" fa effettivamente spegnere il thread... il problema è che poi non ci ritorna più dentro! Forse ho sbagliato qualcosa?