¿Cómo suspender un subproceso hasta que se reciba la devolución de llamada para la función asincrónica?

Tengo una función que debe ejecutarse solo cuando se recibe una devolución de llamada de una función asincrónica.

Me gust

Llamo a la función asincrónicaStop() y poco después llamo a la función asincrónicaStart().

El problema antes de que se reciba Stop CallBackStart() se llama y, por lo tanto, recibo problemas. Además, no puedo separar la llamada de dos funciones. Como no puedo hacer est

public void SomeFunction()
{
    Stop();
}  

public void Stop_CallBack(eventargs e)
{
    Start();
}

Tengo que hacer esto

public void SomeFunction()
{

  Stop();
  //Do something;

  Start();
}

pero antes de recibir Stop call back, mi función start () se ejecuta, creando así los problemas para mí.

¿Alguien puede ayudarme? ¿Cómo puedo resolver este problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta