Schema di strategia con Async c #

-2

La mia domanda è

public interface IFoo
{
    void HandleRequest(int i);
}

public class Class1 : IFoo
{
    public void HandleRequest(int i)
    {
        if(i == 1) // just for example
        {
            //In this case i forced to call for async method
            // await DoSomething();
        }
        //but in all other cases sync implementation
    }
}

public class Class2 : IFoo
{
    public void HandleRequest(int i)
    {
        //here sync impelementation
    }
}

In questo caso in Class1 base sulla condizione in cui io == 1 dovrei chiamare per un'operazione asincrona, ma fare tutti i metodi a causa di una condizione - asincrono è qualcosa di un po 'di bool. Cosa ne pensi?

    
posta MrTKer 25.04.2018 - 22:20
fonte

1 risposta

2

Hai due scelte chiare qui:

  1. Crea HandleRequest e tutti i metodi che lo chiamano e, a turno, li chiamano ecc. async. Problema risolto.

  2. Seguire le istruzioni in questa risposta ad un'altra domanda per consentire alla chiamata asincrona di completare e quindi tornare il risultato.

Se hai un solo metodo asincrono nella tua base di codice e non ne hai bisogno per comportarti in modo asincrono, vai per l'opzione 2. Altrimenti, embra il virus zombi e adotta l'opzione 1.

    
risposta data 26.04.2018 - 10:48
fonte

Leggi altre domande sui tag