Articles of c # 5.0

O uso de variables ​​de foreach foi alterado em C # 5?

Nesta resposta https://stackoverflow.com/a/8649429/1497 Eric Lippert diz que “FYI estamos muito propensos a corrigir isso na próxima versão do C #; este é um grande ponto de dor para os desenvolvedores” no que diz respeito à forma como o Foreach Loops usa a variável. Na próxima versão, cada vez que você percorrer o loop “foreach“, geraremos […]

Fechamento Capturado (Loop Variable) em C # 5.0

Isso funciona bem (como esperado) no C # 5.0: var actions = new List(); foreach (var i in Enumerable.Range(0, 10)) { actions.Add(() => Console.WriteLine(i)); } foreach (var act in actions) act(); Imprime 0 a 9. Mas este mostra 10 por 10 vezes: var actions = new List(); for (var i = 0; i Console.WriteLine(i)); } […]

Existe algum equivalente asynchronous do Process.Start?

Como o título sugere, existe um equivalente a Process.Start (permite que você execute outro aplicativo ou arquivo de lote) que eu possa aguardar? Eu estou jogando com um pequeno aplicativo de console e este parecia ser o lugar perfeito para usar async e aguardar, mas não consigo encontrar qualquer documentação para este cenário. O que […]

asynchronous no aplicativo de console em c #?

Eu tenho esse código simples: public static async Task SumTwoOperationsAsync() { var firstTask = GetOperationOneAsync(); var secondTask = GetOperationTwoAsync(); return await firstTask + await secondTask; } private async Task GetOperationOneAsync() { await Task.Delay(500); // Just to simulate an operation taking time return 10; } private async Task GetOperationTwoAsync() { await Task.Delay(100); // Just to simulate […]

Fire-and-forget com async vs. “old async delegate”

Eu estou tentando replace o meu antigo fogo e esquecer chamadas com uma nova syntax, esperando por mais simplicidade e parece estar me iludindo. Aqui está um exemplo class Program { static void DoIt(string entry) { Console.WriteLine(“Message: ” + entry); } static async void DoIt2(string entry) { await Task.Yield(); Console.WriteLine(“Message2: ” + entry); } static […]

Usando async / wait para várias tarefas

Estou usando um cliente API completamente asynchronous, ou seja, cada operação retorna Task ou Task , por exemplo: static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.DeletePost(siteId, postId); // call API client Console.WriteLine(“Deleted post {0}.”, siteId); } Usando os operadores async / wait do C # 5, qual é a maneira correta […]

Usando o async-await no .net 4

Atualmente, estou começando a criar um aplicativo que lucraria muito com o recurso async-await do C # 5. Mas não tenho certeza de qual versão do VS e do tempo de execução asynchronous usar. Analisando os charts de popularidade do sistema operacional, preciso dar suporte ao Windows XP por mais três anos. Parece que o […]

Como eu poderia executar um método Task asynchronous de forma síncrona?

Estou aprendendo sobre async / await e corri para uma situação onde eu preciso chamar um método asynchronous de forma síncrona. Como eu posso fazer isso? Método asynchronous: public async Task GetCustomers() { return await Service.GetCustomersAsync(); } Uso normal: public async void GetCustomers() { customerList = await GetCustomers(); } Eu tentei usar o seguinte: Task […]

Um exemplo de asynchronous / aguardar que causa um impasse

Eu me deparei com algumas práticas recomendadas para programação assíncrona usando as palavras-chave async / await do c # (eu sou novo no c # 5.0). Um dos conselhos dados foi o seguinte: Estabilidade: conheça seus contextos de synchronization … Alguns contextos de synchronization são não reentrantes e single-threaded. Isso significa que apenas uma unidade […]