Tengo una función que debe ejecutarse solo cuando se recibe una devolución de llamada de la función asincrónica.Cómo suspender un hilo hasta que se reciba la devolución de llamada para la función asíncrona?
Como
me llaman función asíncrona Stop()
y poco después de que yo llamo la función asíncrona Start()
.
El problema antes de que se detenga la Devolución de llamada se llama Start()
y, por lo tanto, tengo problemas. También no puedo separar la convocatoria de dos funciones Como si yo no puedo hacer esto .:
public void SomeFunction()
{
Stop();
}
public void Stop_CallBack(eventargs e)
{
Start();
}
que tengo que hacer esto: la función
public void SomeFunction()
{
Stop();
//Do something;
Start();
}
pero antes de recibir llamada de la parada de vuelta mi inicio() se ejecuta creando así los problemas para mí.
¿Alguien me puede ayudar cómo puedo solucionar este problema.
¿Puedes explicar por qué necesitas 'Stop_Callback'? ¿Por qué no llamar 'stopWaitHandle.Set();' directamente a la tarea? –
@Daniel: * I * no lo necesito; pero la pregunta indica * "[...] función que debe ejecutarse solo cuando se recibe una devolución de llamada [...]" * y el OP ya había sugerido dicha devolución de llamada en la muestra de código dada. Tiendo a querer reestructurar el código OP lo menos posible. Podría ser que la devolución de llamada se invoque desde un código de terceros que no tenga acceso al identificador de espera, por ejemplo. –
No puedo llamar a Stop_callback. Esta es la devolución de llamada que recibo de alguna otra aplicación. – Sumit