Articles of async

Async espera e threads

Eu estou trabalhando com async-await e tarefas, mas não consigo entender a única coisa: A tarefa assíncrona é executada em encadeamento separado? Como o msdn diz ( programação assíncrona ): As palavras-chave async e await não fazem com que threads adicionais sejam criados. Métodos asynchronouss não requerem multithreading porque um método asynchronous não é executado […]

C # Mongo FirstOrDefaultAsync trava

Usando o driver 2.0, o código a seguir, às vezes, trava e nunca retorna. public async Task GetFirst(FilterDefinition query) { return await GetCollection.Find(query).FirstOrDefaultAsync(); } se eu debutar e colocar um ponto de quebra na linha de retorno, tudo retorna normalmente. No shell, a consulta que está sendo executada é algo assim: db.Customers.find({“Name” : /test$/i})

Como um IAsyncCursor é usado para iteração com o driver mongodb c #?

Eu estou tentando obter uma lista de todos os bancos de dados no meu servidor e, finalmente, imprimi-los (ou seja, usar seus nomes como string s). Com a versão anterior do driver c # eu poderia chamar o Server.GetDatabases() , mas isso foi substituído por ListDatabasesAsync() . O valor de retorno é um IAsyncCursor e […]

Por que não chamando Task .Result deadlock?

Depois de ler este post há alguns meses, fiquei paranóico ao obter o Result of a Task e incessantemente envolvi todas as minhas chamadas nele com ConfigureAwait(false) ou Task.Run . No entanto, por algum motivo, o código a seguir é concluído com êxito: public static void Main(string[] args) { var arrays = DownloadMany(); foreach (var […]

Ação do controlador asynchronous com o Umbraco 7 retorna string

É possível usar uma ação assíncrona dentro de um Umbraco SurfaceController (e UmbracoApiController) Eu tentei o seguinte código public async Task HandleLogin(LoginViewModel model) { await Task.Delay(1000); return PartialView(“Login”, model); } e embora compilado corretamente quando a ação é chamada, a ação parece retornar assim que o await é atingido e retorna uma string System.Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult] […]

palavra-chave assíncrona e escolha do TaskScheduler

Gostaria de saber o raciocínio por trás da maneira como o compilador escolhe o TaskScheduler ao compilar usando a palavra-chave async. Meu método de teste é chamado pelo SignalR (host ASP.NET, IIS8, transporte websocket) no método OnConnectedAsync. protected override async Task OnConnectedAsync(IRequest request, string connectionId) { SendUpdates(); } Iniciar uma tarefa no contexto de synchronization […]

Como lidar com as exceções geradas por tarefas no Assert.Throws do xUnit .net?

O seguinte teste xUnit.net asynchronous com um lambda marcado com o modificador async falha ao informar que nenhuma exceção foi lançada: [Theory, AutoWebData] public async Task SearchWithNullQueryThrows( SearchService sut, CancellationToken dummyToken) { // Fixture setup // Exercise system and verify outcome Assert.Throws(async () => await sut.SearchAsync(null, dummyToken)); // Teardown } Para ter certeza de que […]

Como determinar um status de resposta 404 ao usar o HttpClient.GetAsync ()

Eu estou tentando determinar a response retornada pelo método GetAsync HttpClient no caso de erros 404 usando C # e .NET 4.5. No momento, só posso dizer que ocorreu um erro em vez do status do erro, como 404 ou tempo limite. Atualmente meu código meu código se parece com isso: static void Main(string[] args) […]

Bloqueios de Ação Hashed / Sharded

Eu tenho um stream constante de certos itens que preciso processar em paralelo, então estou usando o TPL Dataflow . O problema é que os itens que compartilham a mesma chave (semelhante a um Dicionário) devem ser processados ​​em uma ordem FIFO e não devem ser paralelos entre si (podem ser paralelos a outros itens […]

Asserção de exceção de teste asynchronous Nunit

Eu tenho um controlador UserController com esta ação // GET /blah public Task Get(string domainUserName) { if (string.IsNullOrEmpty(domainUserName)) { throw new ArgumentException(“No username specified.”); } return Task.Factory.StartNew( () => { var user = userRepository.GetByUserName(domainUserName); if (user != null) { return user; } throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, string.Format(“{0} – username does not exist”, domainUserName))); }); } Eu […]