Resposta da Pergunta 7 |
Pergunta 7 | Resposta: |
Qual será o resultado obtido pela execução do seguinte código:
using System;
using System.Threading.Tasks;
public class Program
{
private static string resultado;
public static void Main()
{
FazAlgumaCoisa();
Console.WriteLine(resultado);
Console.ReadLine();
}
static async Task<string> FazAlgumaCoisa()
{
await Task.Delay(5);
resultado = "Macoratti .net!";
return "FazAlgumaCoisa";
}
}
|
A resposta correta é a opção D- ) Uma linha em branco Justificativa: Será exibida uma linha em branco porque a variável resultado não será inicializada quando a linha Console.WriteLine(resultado); for executada. Isso ocorre porque a chamada ao método FazAlgumaCoisa() foi feita de forma síncrona, sem usar a o operador await/wait , e a execução do método Main() continua sua execução. Quando o método assíncrono FazAlgumaCoisa() for invocado, a função chamada por await , que é Task.Delay(5), será executada de forma assíncrona, e a linha depois da instrução await, não será executada até que Task.Delay termine (isso demora 5 segundos), e, neste tempo, o controle já retornou para o método Main() que chamou o método FazAlgumaCoisa(), que executa o código Console.WriteLine exibindo uma string que não foi inicializada.
|
Veja o resultado da compilação neste link : Compilação C#
Acertou a resposta ?
Então responda rápido:
Como contornar o problema e exibir o valor da variável resultado definida no método FazAlgumaCoisa() ?
A-) Remover o operador await da instrução Task.Delay(5) B-) Remover o operador async do método FazAlgumaCoisa(). Ex: static Task<string> FazAlgumaCoisa() C-) Incluir o operador async no método Main(). Ex: public async static void Main() D-) Remover os operadores async e await do método FazAlgumaCoisa() E-) Incluir o operador Wait na chamada do método FazAlgumaCoisa. Ex: FazAlgumaCoisa().Wait(); |
Veja a resposta neste link : Resposta C#
Se dissermos que temos comunhão com
ele (Jesus), e andarmos em trevas, mentimos, e não praticamos a verdade.
Mas, se andarmos na luz, como ele na luz está, temos comunhão uns com os
outros, e o sangue de Jesus Cristo, seu Filho, nos purifica de todo o
pecado.
1 João 1:6,7
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: