Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

AJBM

Métodos assíncronos Web API

Recommended Posts

AJBM

Boas!

Alguém me pode explicar como os modificadores async e await funcionam.

Faz sentido um método de uma WebAPI ser async ?

Share this post


Link to post
Share on other sites
AJBM

Já fiquei com algumas "luzes", mas continuo com algumas dúvidas.

Nem todo o código pode ser assíncrono, por exemplo:

public async Task<bool> GetStuff()
 {
	 return await Task.Run(() => DoWork("AA"));
 }
 private bool DoWork(string pString)
 {
	 bool isAdded = false;
	 if (!string.IsNullOrEmpty(pString))
	 {
		 //Grava na base dados
		 ...
		 isAdded = true;
	 }
	 return isAdded;
 }

No DoWork existe código que têm de ser executado, ou seja, é necessário uma thread.

O que é que faz de um método realmente assíncrono?

Share this post


Link to post
Share on other sites
bruno1234

A ideia do assíncrono é libertar threads para a aplicação ter mais disponibilidade.

Num servidor HTTP, por exemplo, tens as threads que atendem os pedidos, que são limitadas.

E tens outras de input/output que acedem a recursos como o disco, BDs,... que também são limitadas, mas independentes das outras.

Quando queres aceder a um desses recursos, utilizas código assíncrono que vai libertar uma thread que atende pedidos enquanto está a correr a outra.

Se for uma aplicação windows, por exemplo, utiliza-se os métodos assincronos para o UI não bloquear.

Isto é uma explicação muito vaga, precisas de ler e experimentar muito para perceberes como realmente funciona.

No caso do .net, o nome dos métodos asincronos normalmente termina com Async.


Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.