Запитання з тегом «task-parallel-library»

Паралельна бібліотека завдань є частиною .NET Framework з .NET 4. Це набір API, що дозволяє розробникам програмувати асинхронні програми.

6
Параметр за замовчуванням для CancellationToken
У мене є асинхронний код, до якого я хотів би додати a CancellationToken. Однак є багато реалізацій, де це не потрібно, тому я хотів би мати параметр за замовчуванням - можливо CancellationToken.None. Однак Task<x> DoStuff(...., CancellationToken ct = null) врожайність Значення типу '' не можна використовувати як параметр за замовчуванням, …

5
Приклад асинхронізації / очікування, що спричиняє глухий кут
Я натрапив на кілька найкращих практик асинхронного програмування з використанням ключових слів async/ awaitключових слів (я знайомлюсь із c # 5.0). Однією з наведених порад було наступне: Стабільність: знайте свої контексти синхронізації ... Деякі контексти синхронізації не є ретрансляційними та однопотоковими. Це означає, що в даний момент часу в контексті …

3
Правильний спосіб реалізації нескінченного завдання. (Таймери проти завдання)
Отже, мій додаток повинен виконувати дію майже безперервно (з паузою приблизно 10 секунд між кожним запуском), поки програма працює або вимагається скасування. Робота, яку йому потрібно виконати, може тривати до 30 секунд. Чи краще використовувати System.Timers.Timer та використовувати AutoReset, щоб переконатися, що він не виконує дію до завершення попередньої "галочки". …

7
Чи існує заміна завдання на основі System.Threading.Timer?
Я новачок у завданнях .Net 4.0, і я не зміг знайти те, що, на мою думку, було б заміною на основі завдань або реалізацією таймера, наприклад періодичне завдання. Чи є така річ? Оновлення Я придумав рішення, яке, на мою думку, є рішенням для моїх потреб, а саме: обернути функцію "Таймер" …

3
Потрібно зрозуміти використання SemaphoreSlim
Ось код, який я маю, але я не розумію, що SemaphoreSlimробиться. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if (msg != …

7
Чи рекомендується prevTask.Wait () використовувати з ContinueWith (з бібліотеки Завдань)?
Тож нещодавно мені сказали, що як я використовую свою програму .ContinueWith for Tasks, не є правильним способом їх використання. Я ще не мав знайти доказів цього в Інтернеті, тому я запитаю вас, хлопці, і подивлюсь, яка відповідь. Ось приклад того, як я використовую .ContinueWith: public Task DoSomething() { return Task.Factory.StartNew(() …

7
Завдання. Запустити з параметрами?
Я працюю над багатозадачним мережевим проектом, і я новачок у цьому Threading.Tasks. Я реалізував просте, Task.Factory.StartNew()і мені цікаво, як я можу це зробити Task.Run()? Ось основний код: Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); Я заглянув System.Threading.Tasks.Taskу браузер об’єктів і не зміг знайти Action<T>подібний параметр. …

4
Чи є щось на зразок асинхронного BlockingCollection <T>?
Я б хотів await про результат BlockingCollection&lt;T&gt;.Take()асинхронно, тому я не блокую потік. Шукаємо щось подібне: var item = await blockingCollection.TakeAsync(); Я знаю, що міг це зробити: var item = await Task.Run(() =&gt; blockingCollection.Take()); але це як би вбиває всю ідею, оскільки ThreadPoolзамість цього блокується інший потік (of ). Чи є …

2
Завдання паралельної заміни бібліотеки для BackgroundWorker?
Чи має паралельна бібліотека завдань щось, що можна вважати заміною або вдосконаленням порівняно з класом BackgroundWorker? У мене є програма WinForms з інтерфейсом у стилі майстра, і вона виконує деякі тривалі завдання. Я хочу мати адаптивний інтерфейс зі стандартним індикатором прогресу та можливість скасувати операцію. Я робив це раніше з …

6
Як я можу запобігти синхронному продовженню завдання?
У мене є якийсь бібліотечний (мережевий) код, який надає TaskAPI на основі очікуваних відповідей на запити на основі TaskCompletionSource&lt;T&gt;. Однак у TPL є роздратування, оскільки, здається, неможливо запобігти синхронним продовженням. Що б я хотів , щоб бути в змозі зробити це або: скажіть a, TaskCompletionSource&lt;T&gt;який не повинен дозволяти абонентам приєднуватися …

2
Який найкращий спосіб зловити виняток у Task?
З System.Threading.Tasks.Task&lt;TResult&gt;, я повинен керувати винятками, які можуть бути викликані. Я шукаю найкращий спосіб зробити це. Наразі я створив базовий клас, який управляє усіма невпійманими винятками всередині виклику.ContinueWith(...) Мені цікаво, чи є кращий спосіб зробити це. Або навіть якщо це хороший спосіб це зробити. public class BaseClass { protected void …

2
Найкращий спосіб перетворити асинхронний метод на основі зворотного виклику на очікуване завдання
Який найкращий спосіб перетворити / обернути "класичний" асинхронний метод, який використовує зворотний виклик до чогось, що повертає (очікуване) завдання? Наприклад, враховуючи такий спосіб: public void GetStringFromUrl(string url, Action&lt;string&gt; onCompleted); Єдиний спосіб, яким я знаю, щоб перетворити це на метод, що повертає завдання, це: public Task&lt;string&gt; GetStringFromUrl(string url) { var t …

6
Чи повинен я використовувати ThreadPools або паралельну бібліотеку завдань для операцій, пов'язаних з IO
В одному зі своїх проектів, який є свого роду агрегатором, я аналізую канали, подкасти тощо з Інтернету. Якщо я використовую послідовний підхід, враховуючи велику кількість ресурсів, для їх обробки потрібен досить багато часу (через проблеми з мережею та подібні речі); foreach(feed in feeds) { read_from_web(feed) parse(feed) } Отже, я хочу …

3
Десеріалізуйте JSON до масиву або списку за допомогою HTTPClient .ReadAsAsync за допомогою шаблону завдань .NET 4.0
Я намагаюся десериалізувати JSON, повернутий із http://api.usa.gov/jobs/search.json?query=nursing+jobsвикористанням шаблону завдань .NET 4.0. Він повертає цей JSON ('Завантажити дані JSON' @ http://jsonviewer.stack.hu/). [ { "id": "usajobs:353400300", "position_title": "Nurse", "organization_name": "Indian Health Service", "rate_interval_code": "PA", "minimum": 42492, "maximum": 61171, "start_date": "2013-10-01", "end_date": "2014-09-30", "locations": [ "Gallup, NM" ], "url": "https://www.usajobs.gov/GetJob/ViewDetails/353400300" }, { "id": …

4
Чи гарантовано Task.Factory.StartNew () використовувати інший потік, ніж викличний потік?
Я починаю нове завдання з функції, але я не хотів би, щоб воно працювало в тому ж потоці. Мені байдуже, на якому потоці він працює, поки він інший (тому інформація, наведена в цьому питанні , не допомагає). Чи гарантую я, що наведений нижче код завжди вийде, TestLockперш ніж дозволити Task …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.