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

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

4
Найкраща практика для виклику ConfigureAwait для всього коду на стороні сервера
Якщо у вас є код на стороні сервера (тобто деякий ApiController), і ваші функції асинхронні - тому вони повертаються Task<SomeObject>- чи вважається найкращою практикою будь-який час, коли ви очікуєте функцій, які ви викликаєте ConfigureAwait(false)? Я читав, що він є більш ефективним, оскільки йому не потрібно перемикати контексти потоків назад до …

9
Якщо мій інтерфейс повинен повернути Завдання, який найкращий спосіб не виконати операцію?
У наведеному нижче коді, завдяки інтерфейсу, клас LazyBarповинен повернути завдання зі свого методу (а для аргументів змінити не можна). Якщо LazyBarреалізація s незвична тим, що вона запускається швидко і синхронно - який найкращий спосіб повернути завдання без операції з методу? Я пішов з Task.Delay(0)нижче, однак я хотів би знати, чи …

5
Використання асинхронізації / очікування для декількох завдань
Я використовую клієнт API, який повністю асинхронний, тобто кожна операція або повертається, Taskабо Task<T>, наприклад: static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.DeletePost(siteId, postId); // call API client Console.WriteLine("Deleted post {0}.", siteId); } Використовуючи операторів асинхронізації / очікування C # 5, який є правильним / найефективнішим …

15
Асинхронно зачекайте, коли завдання <T> завершиться з таймаутом
Я хочу зачекати, коли завдання &lt;T&gt; завершиться деякими спеціальними правилами: якщо воно не закінчилося через X мілісекунд, я хочу відобразити повідомлення користувачеві. І якщо вона не закінчилася через Y мілісекунд, я хочу автоматично подати запит на скасування . Я можу використовувати Task.ContinueWith для асинхронного очікування завершення завдання (тобто планувати дію, …

4
Коли використовувати Task.Delay, коли використовувати Thread.Sleep?
Чи є хороші правила щодо використання Task.Delay проти Thread.Sleep ? Зокрема, чи є мінімальне значення для забезпечення ефективності / ефективності одного з іншого? Нарешті, оскільки Task.Delay викликає переключення контексту на машину стану асинхронізування / очікування, чи є накладні витрати на його використання?

8
Яка різниця між завданням і ниткою?
У C # 4.0 ми маємо Taskв просторі імен System.Threading.Tasks . У чому полягає справжня різниця між Threadта Task. Я зробив декілька зразкових програм (допомогу, взяту з MSDN) заради власного навчання Parallel.Invoke Parallel.For Parallel.ForEach але є багато сумнівів, оскільки ідея не така зрозуміла. Я спочатку шукав у Stackoverflow подібний тип …


4
Як я можу сказати Moq повернути завдання?
У мене є інтерфейс, який заявляє Task DoSomethingAsync(); Я використовую MoqFramework для своїх тестів: [TestMethod()] public async Task MyAsyncTest() { Mock&lt;ISomeInterface&gt; mock = new Mock&lt;ISomeInterface&gt;(); mock.Setup(arg =&gt; arg.DoSomethingAsync()).Callback(() =&gt; { &lt;my code here&gt; }); ... } Потім у своєму тесті я виконую код, який викликає await DoSomethingAsync(). І тест просто …

11
Як безпечно викликати метод асинхронізації в C # без очікування
У мене є asyncметод, який не повертає даних: public async Task MyAsyncMethod() { // do some stuff async, don't return any data } Я називаю це іншим методом, який повертає деякі дані: public string GetStringData() { MyAsyncMethod(); // this generates a warning and swallows exceptions return "hello world"; } Виклик, …

4
Синхронно чекаючи операції асинхронізації, і чому Wait () заморожує програму тут
Передмова : Я шукаю пояснення, а не просто рішення. Я вже знаю рішення. Незважаючи на те, що витратив кілька днів на вивчення статей MSDN про асинхронний візерунок на основі завдань (TAP), асинхронізуйте його та очікуйте, я все ще трохи розгублений щодо деяких тонких деталей. Я пишу реєстратор для додатків Windows …

6
Ловіть виняток, викинутий методом анулювання анулювання
Використовуючи асинхронний CTP від ​​Microsoft для .NET, чи можна зловити виняток, викинутий методом async в методі виклику? public async void Foo() { var x = await DoSomethingAsync(); /* Handle the result, but sometimes an exception might be thrown. For example, DoSomethingAsync gets data from the network and the data is …

4
Parallel.ForEach vs Task.Factory.StartNew
Яка різниця між наведеними нижче фрагментами коду? Не будуть обидва використовувати нитки нитки? Наприклад, якщо я хочу викликати функцію для кожного елемента колекції, Parallel.ForEach&lt;Item&gt;(items, item =&gt; DoSomething(item)); vs foreach(var item in items) { Task.Factory.StartNew(() =&gt; DoSomething(item)); }

8
Запуск декількох завдань асинхронізації та очікування їх завершення
Мені потрібно запустити кілька завдань на асинхронізацію в консольному додатку та дочекатися їх завершення перед подальшою обробкою. Статей там багато, але я, мабуть, більше плутаю, чим більше читаю. Я прочитав і зрозумів основні принципи бібліотеки завдань, але явно десь пропускаю посилання. Я розумію, що можна ланцюжок завдань таким чином, щоб …

10
Очікування декількох завдань з різними результатами
У мене є 3 завдання: private async Task&lt;Cat&gt; FeedCat() {} private async Task&lt;House&gt; SellHouse() {} private async Task&lt;Tesla&gt; BuyCar() {} Всі вони повинні працювати, перш ніж мій код може продовжуватися, і мені потрібні також результати від кожного. Жоден із результатів не має нічого спільного між собою Як мені зателефонувати і …

12
Виклик асинхронного методу синхронно
У мене є asyncметод: public async Task&lt;string&gt; GenerateCodeAsync() { string code = await GenerateCodeService.GenerateCodeAsync(); return code; } Мені потрібно викликати цей метод із синхронного методу. Як я можу це зробити без копіювання GenerateCodeAsyncметоду для того, щоб це працювало синхронно? Оновлення Однак розумного рішення не знайдено. Однак я бачу, що HttpClientвже …

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