Вопросы с тегом «task-parallel-library»

Библиотека параллельных задач является частью .NET Framework начиная с .NET 4. Это набор API, позволяющий разработчикам программировать асинхронные приложения.

4
Токен аннулирования в конструкторе задач: почему?
Некоторые System.Threading.Tasks.Taskконструкторы принимают CancellationTokenв качестве параметра: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); Что меня сбивает с толку, так это то, что изнутри тела метода не существует способа фактически получить переданный токен (например, ничего подобного Task.CurrentTask.CancellationToken). Токен должен быть предоставлен через какой-то другой …

6
В чем разница между Task.Start / Wait и Async / Await?
Я могу что-то упустить, но в чем разница между деланием: 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
Когда следует использовать TaskCompletionSource <T>?
AFAIK, все, что он знает, - это то, что в какой-то момент вызывается его метод SetResultили SetExceptionметод для завершения Task&lt;T&gt;экспонирования через его Taskсвойство. Другими словами, он выступает в качестве производителя для Task&lt;TResult&gt;и его завершения. Я видел здесь пример: Если мне нужен способ выполнить Func асинхронно и иметь задачу для представления …

11
Нет ConcurrentList <T> в .Net 4.0?
Я был рад увидеть новое System.Collections.Concurrentпространство имен в .Net 4.0, довольно приятно! Я видел ConcurrentDictionary, ConcurrentQueue,ConcurrentStack , ConcurrentBagи BlockingCollection. Одна вещь, которая, кажется, таинственно отсутствует, это ConcurrentList&lt;T&gt; . Я должен написать это сам (или убрать это из сети :))? Я что-то упускаю здесь очевидное?


3
жду vs Task.Wait - тупик?
Я не совсем понимаю разницу между Task.Waitиawait . У меня есть что-то похожее на следующие функции в службе 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 …

1
В чем разница между Task.Run () и Task.Factory.StartNew ()
У меня есть метод: private static void Method() { Console.WriteLine("Method() started"); for (var i = 0; i &lt; 20; i++) { Console.WriteLine("Method() Counter = " + i); Thread.Sleep(500); } Console.WriteLine("Method() finished"); } И я хочу запустить этот метод в новом задании. Я могу начать новую задачу, как это var task …

6
HttpClient - Задача была отменена?
Он отлично работает, когда есть одна или две задачи, однако выдает ошибку «Задача была отменена», когда у нас в списке более одной задачи. 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 …

6
Какая польза для Task.FromResult <TResult> в C #
В C # и TPL ( Task Parallel Library ) Taskкласс представляет собой текущую работу, которая создает значение типа T. Я хотел бы знать, что нужно для метода Task.FromResult ? То есть: в сценарии, где у вас уже есть произведенная ценность, зачем нужно возвращать ее в задачу? Единственное, что приходит …

9
Вложенности ждут в Parallel.ForEach
В приложении метро мне нужно выполнить несколько вызовов WCF. Необходимо сделать значительное количество вызовов, поэтому мне нужно делать их в параллельном цикле. Проблема заключается в том, что параллельный цикл завершается до завершения всех вызовов WCF. Как бы вы рефакторинг это работать так, как ожидалось? var ids = new List&lt;string&gt;() { …

4
Как отменить задачу в ожидании?
Я играю с этими задачами Windows 8 WinRT и пытаюсь отменить задачу, используя метод, описанный ниже, и в какой-то момент это работает. Метод CancelNotification ДОЛЖЕН вызываться, что заставляет вас думать, что задача была отменена, но в фоновом режиме задача продолжает выполняться, затем после ее завершения состояние задачи всегда завершается и …

7
Когда утилизировать CancellationTokenSource?
Класс CancellationTokenSourceодноразовый. Быстрый просмотр Reflector доказывает использование KernelEvent(весьма вероятного) неуправляемого ресурса. Так CancellationTokenSourceкак не имеет финализатора, если мы не распорядимся им, сборщик мусора не сделает этого. С другой стороны, если вы посмотрите на примеры, перечисленные в статье MSDN Отмена в управляемых потоках , только один фрагмент кода избавится от токена. …

4
Async / ожидание против BackgroundWorker
В последние несколько дней я тестировал новые возможности .net 4.5 и c # 5. Мне нравятся его новые функции async / await. Ранее я использовал BackgroundWorker для обработки более длинных процессов в фоновом режиме с отзывчивым пользовательским интерфейсом. Мой вопрос: после этих замечательных новых функций, когда я должен использовать async …

2
Что касается использования Task.Start (), Task.Run () и Task.Factory.StartNew ()
Я только что видел 3 процедуры использования TPL, которые выполняют ту же работу; вот код: public static void Main() { Thread.CurrentThread.Name = "Main"; // Create a task and supply a user delegate by using a lambda expression. Task taskA = new Task( () =&gt; Console.WriteLine("Hello from taskA.")); // Start the …

5
Параллельный foreach с асинхронной лямбдой
Я хотел бы обрабатывать коллекцию параллельно, но у меня проблемы с ее реализацией, поэтому я надеюсь на некоторую помощь. Проблема возникает, если я хочу вызвать метод, помеченный как async в C #, в лямбда-выражении параллельного цикла. Например: var bag = new ConcurrentBag&lt;object&gt;(); Parallel.ForEach(myCollection, async item =&gt; { // some pre …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.