Perguntas com a marcação «task-parallel-library»

A Task Parallel Library faz parte do .NET Framework desde o .NET 4. É um conjunto de APIs para permitir que os desenvolvedores programem aplicativos assíncronos.

4
Token de cancelamento no construtor Task: por quê?
Certos System.Threading.Tasks.Taskconstrutores aceitam a CancellationTokencomo parâmetro: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); O que me deixa desconcertado é que não há como, dentro do corpo do método, obter o token passado (por exemplo, nada parecido Task.CurrentTask.CancellationToken). O token deve ser fornecido através …

6
Qual é a diferença entre Task.Start / Wait e Async / Await?
Posso estar faltando alguma coisa, mas qual é a diferença entre fazer: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result = Task.Factory.StartNew(DoSomethingThatTakesTime); await result; UpdateLabelToSayItsComplete(); } private void DoSomethingThatTakesTime() { Thread.Sleep(10000); }


11
Nenhuma ConcurrentList <T> no .Net 4.0?
Fiquei emocionado ao ver o novo System.Collections.Concurrentespaço para nome no .Net 4.0, muito bom! Eu vi ConcurrentDictionary, ConcurrentQueue, ConcurrentStack, ConcurrentBage BlockingCollection. Uma coisa que parece estar misteriosamente faltando é a ConcurrentList&lt;T&gt;. Eu tenho que escrever isso sozinho (ou tirá-lo da web :))? Estou perdendo algo óbvio aqui?


3
aguardar vs Task.Wait - Deadlock?
Não entendo bem a diferença entre Task.Waite await. Eu tenho algo semelhante às seguintes funções em um serviço ASP.NET WebAPI: public class TestController : ApiController { public static async Task&lt;string&gt; Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task&lt;string&gt; Bar() { return await Foo(); } public async static …


6
HttpClient - Uma tarefa foi cancelada?
Funciona bem quando há uma ou duas tarefas, porém gera um erro "Uma tarefa foi cancelada" quando temos mais de uma tarefa listada. List&lt;Task&gt; allTasks = new List&lt;Task&gt;(); allTasks.Add(....); allTasks.Add(....); Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken); private static Task&lt;T&gt; HttpClientSendAsync&lt;T&gt;(string url, object data, HttpMethod method, string contentType, CancellationToken token) { HttpRequestMessage httpRequestMessage = new …



4
Como cancelar uma tarefa em espera?
Estou brincando com essas tarefas do Windows 8 WinRT e estou tentando cancelar uma tarefa usando o método abaixo e funciona até certo ponto. O método CancelNotification é chamado, o que faz você pensar que a tarefa foi cancelada, mas, em segundo plano, a tarefa continua sendo executada; depois de …

7
Quando descartar o CancellationTokenSource?
A classe CancellationTokenSourceé descartável. Uma rápida olhada no Reflector comprova o uso de KernelEvent, um recurso (provavelmente) não gerenciado. Como CancellationTokenSourcenão possui finalizador, se não descartá-lo, o GC não o fará. Por outro lado, se você observar os exemplos listados no artigo do MSDN Cancelamento em threads gerenciados , apenas …



5
Foreach paralelo com lambda assíncrono
Gostaria de lidar com uma coleção em paralelo, mas estou tendo problemas para implementá-la e, portanto, espero por alguma ajuda. O problema surge se eu quiser chamar um método marcado como assíncrono em C #, dentro do lambda do loop paralelo. Por exemplo: var bag = new ConcurrentBag&lt;object&gt;(); Parallel.ForEach(myCollection, async …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.