Como suspender um encadeamento até que o retorno de chamada para a função assíncrona seja recebid

Tenho uma função que precisa ser executada apenas quando um retorno de chamada é recebido da função assíncron

Gosta

I chamo a função assíncronaStop() e logo depois chamo a função assíncronaStart().

O problema antes do recebimento do Stop CallBackStart() é chamado e, portanto, estou tendo problemas. Também não consigo separar a chamada de duas funções. Como não posso fazer iss

public void SomeFunction()
{
    Stop();
}  

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

Eu tenho que fazer isso

public void SomeFunction()
{

  Stop();
  //Do something;

  Start();
}

mas antes de eu receber a chamada Stop, minha função start () é executada, criando assim os problemas para mi

Alguém pode me ajudar, como posso resolver esse problem

questionAnswers(2)

yourAnswerToTheQuestion