Articles of assíncrona

O que acontece enquanto aguarda o resultado de uma tarefa?

Estou usando o HttpClient para postar dados em um serviço remoto em um projeto .NET 4.0. Eu não estou preocupado com este bloqueio de operação, então eu percebi que eu poderia pular ContinueWith ou async / await e usar o resultado. Durante a debugging, me deparei com um problema em que o servidor remoto não […]

Download de arquivo asynchronous com barra de progresso

Eu estou tentando ter uma alteração de progresso da barra de progresso conforme o progresso do download do WebClient alterado. Este código ainda baixa o arquivo ainda quando eu chamo startDownload() a janela congela enquanto baixa o arquivo. Eu gostaria que o usuário pudesse ver a mudança de progresso à medida que a canvas inicial […]

Qual é a maneira correta de cancelar uma operação assíncrona que não aceita um CancellationToken?

Qual é a maneira correta de cancelar o seguinte? var tcpListener = new TcpListener(connection); tcpListener.Start(); var client = await tcpListener.AcceptTcpClientAsync(); Simplesmente chamar tcpListener.Stop() parece resultar em um ObjectDisposedException e o método AcceptTcpClientAsync não aceita uma estrutura CancellationToken . Estou totalmente ausente de algo óbvio?

Um padrão para cancelar automaticamente e reiniciar tarefa

Existe um padrão estabelecido recomendado para cancelar automaticamente e reiniciar tarefas? Por exemplo, estou trabalhando na API para verificação ortográfica em segundo plano. A session de verificação ortográfica é agrupada como Task . Cada nova session deve cancelar a anterior e aguardar sua finalização (para reutilizar adequadamente os resources, como o provedor de serviços de […]

Como usar a propriedade CancellationToken?

Comparado ao código anterior para a class RulyCanceler , eu queria executar o código usando CancellationTokenSource . Como faço para usá-lo como mencionado em Tokens de Cancelamento , ou seja, sem jogar / pegar uma exceção? Posso usar a propriedade IsCancellationRequested ? Eu tentei usá-lo assim: cancelToken.ThrowIfCancellationRequested(); e try { new Thread(() => Work(cancelSource.Token)).Start(); } […]

armazenar em cache o resultado de um método de fábrica se ele não lançar

ATUALIZAÇÃO: Muito revisado depois que @usr apontou que eu tinha assumido incorretamente que o modo de segurança de thread padrão do Lazy era LazyThreadSafetyMode.PublicationOnly … Eu quero calcular preguiçosamente um valor através de um método de fábrica async (ou seja, ele retorna Task ) e tê-lo em cache após o sucesso. Em exceção, quero que […]

Como posso determinar se os methods da Apple são asynchronouss?

Eu estou ligando um NSArrayController para um managedObjectContext com mainQueueConcurrency. Tudo o que eu quero fazer é modificar as propriedades de ordenação do arrangedObjects com a minha própria function e depois chamar rearrangeObjects e depois selecionar alguns objects. Mas parece que o rearrangeObjects não é executado de forma síncrona. Então, como posso provar isso, de […]

process.WaitForExit () de forma assíncrona

Eu quero esperar por um processo para concluir, mas process.WaitForExit() trava minha GUI. Existe uma maneira baseada em events, ou eu preciso gerar um thread para bloquear até sair e delegar o evento eu mesmo?

Nó JS Promise.all e forEach

Eu tenho uma matriz como estrutura que expõe methods asynchronouss. O método asynchronous chama estruturas de matriz de retorno que, por sua vez, expõem mais methods asynchronouss. Estou criando outro object JSON para armazenar valores obtidos dessa estrutura e, portanto, preciso ter cuidado ao manter o controle de referências em retornos de chamada. Eu codifiquei […]

Como encadear pedidos de ajax?

Eu tenho que interagir com uma API remota que me obriga a fazer pedidos em cadeia. Isso é um retorno de chamada no modo asynchronous: // pseudocode: ajax(request_object, callback) ajax(a, function() { ajax(b(a.somedata), function() { ajax(c(b.somedata), function() { c.finish() } }) }) Seria muito mais legível no modo de synchronization: sjax(a) sjax(b(a.somedata)) sjax(c(b.somedata)) c.finish() Mas […]