Ir para o conteúdo
AJBM

Métodos assíncronos Web API

Mensagens Recomendadas

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.