Lorsque vous avez un code côté serveur (c'est à dire quelques ApiController
) et vos fonctions sont asynchrone afin de renvoyer Task<SomeObject>
- est-il considéré comme une bonne pratique que de tout temps, vous attendent les fonctions que vous appelez ConfigureAwait(false)
?
J'avais lu qu'il est plus performant puisqu'il n'est pas nécessaire de changer les contextes de thread en arrière à l'original du contexte de thread. Cependant, avec ASP.NET l'Api Web, si votre demande est les prochains sur un fil, et vous attendent de certaines fonctions et appelez - ConfigureAwait(false)
qui pourraient vous mettre sur un thread différent lorsque vous êtes de retour sur le résultat final de votre ApiController
fonction.
J'ai tapé un exemple de ce dont je parle ci-dessous:
public class CustomerController : ApiController
{
public async Task<Customer> Get(int id)
{
// you are on a particular thread here
var customer = await SomeAsyncFunctionThatGetsCustomer(id).ConfigureAwait(false);
// now you are on a different thread! will that cause problems?
return customer;
}
}