Tag Archives: TASKS

I Love C#, 6 Await In Catch

Await In Catch

Continuando a saga para conhecer as novas features do C#6 projetadas para nos ajudar na codificação de nossos aplicativos. Vamos lá:

Hoje o C#6 apresenta o sexto recurso, o TryCatch com método Async. Um recurso implementado que permite tratar métodos assincronos em um bloco try…catch.

Um problema que tínhamos neste tipo de programação era o tratamento de exceção. Tratar um erro dentro deste método assíncrono não era nada trivial.

Chega de teoria!

  • Project : Console Application
  • Visual Studio : Community 2015 (RC)
  • .NET FW : 4.6

Sintaxe

try 
    … 
catch 
    {await …} 
Finally
    {await …}

Metódo Assincrono

public async Task<int> Calculo()
{
    try
    {
        // Code
    }
    catch
    {
        await Task.Delay(4);
    }
    finally
    {
        await Task.Delay(4);
    }
}

Aqui temos um método assíncrono que realiza um calculo simples. Mas, quando era preciso tratar um erro dentro deste método não era nada trivial.

Outro exemplo:

public static async void DownloadAsync()
{
	try
	{
		throw new Exception("Error");
	}
	catch
	{
		await Task.Delay(2000);
		WriteLine("Waiting 4 seconds");
	}
	finally
	{
		await Task.Delay(2000);
		WriteLine("Waiting 4 seconds");
	}
}

Então é isso treine bastante, e fiquei familiarizado com estes novos recursos.

A Programação Assincrona

Este tipo de programação nos oferece a possibilidade de executar muitas coisas em paralelo. Podemos desenvolver para Asp.net de forma assíncrona e para móveis esta característica já é Nativa.

Async, tem muita coisa acontecendo!

Ok! Um pouco sobre o AWAIT IN ASYNC do C#6.

 

 

Xamarin Android – Apresenta (Intent)

Xamarin.Android, Segundas Intenções!

Aprendendo um pouco sobre uma das partes mais importantes de um app Android, a Intent.

Definição

Uma Intent é um objeto projetado para fornecer uma vinculação em tempo de execução entre componentes separados (como duas activities). A Intent é um conceito abstrato para algum tipo de operação que deve ser realizada no Android, ou seja, significa que o APP tem a ” intent to do something”.

Responsabilidade

Veja algumas tarefas que uma intenção pode realizar.

intent_conceitos_basicos

Utilizamos intents em muitas tarefas, mas ela é muito utilizada para iniciar (navegar) outra atividade.

Também podemos utilizá-la para lançar uma aplicação externa com a intenção de fazer algo:

  • Iniciar um URI
  • Mapear um endereço
  • Fazer uma chamada telefônica

Uma intenção muitas vezes consiste em

  • O que é a intenção
  • Os dados necessários para a intenção
    • Número de telefone para ligar

Intent of making a phone call

Criar intenção de discar telefone.

var callIntent = new Intent(Intent.ActionCall);
callIntent.SetData(Android.Net.Uri.Parse("tel" + translatedNumber));
StartActivity(callIntent);

ActionCall pede ao Android uma atividade para fazer um telefonema.

Intenção para navegar para outra tela

Criar intenção para outra activity.

var intent = new Intent ();
intent.SetClass (this, typeof(CoffeeDetailActivity));
intent.PutExtra ("selectedCoffeeId", t.CoffeeId);
StartActivity (intent);

StartActivity pode ser usado para iniciar outra atividade.

PutExtra () é usado para passar dados de uma atividade para a outra.

Receber informações da intent

protected override void OnCreate (Bundle bundle) 
{
base.OnCreate (bundle);

SetContentView (Resource.Layout.Main);

var selectedCoffeeId = Intent.Extras.GetInt ("selectedCoffeeId", 0);

Coffee coffee = DataService.GetCoffeeById (selectedCoffeeId);
}

Continua

Ok! Isso é um pouco sobre Android Intent.