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

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

562
Рекомендуется вызывать ConfigureAwait для всего кода на стороне сервера

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

436
Если мой интерфейс должен вернуть Task, каков наилучший способ реализации без операции?

В приведенном ниже коде из-за интерфейса класс LazyBarдолжен возвращать задачу из своего метода (и ради аргументов не может быть изменен). Если LazyBarреализация s необычна в том смысле, что она выполняется быстро и синхронно - каков наилучший способ вернуть задачу No-Operation из метода? Я пошел с...

406
Использование async / await для нескольких задач

Я использую клиент API, который является полностью асинхронным, то есть каждая операция либо возвращает, Taskлибо Task<T>, например: static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.DeletePost(siteId, postId); // call API client...

388
Асинхронно ожидайте завершения задачи <T> с тайм-аутом

Я хочу подождать, пока Задание <T> завершится с некоторыми специальными правилами: если оно не завершилось через X миллисекунд, я хочу отобразить сообщение для пользователя. И если он не завершился через Y миллисекунд, я хочу автоматически запросить отмену . Я могу использовать...

386
Когда использовать Task.Delay, когда использовать Thread.Sleep?

Есть хорошие правила для использования Task.Delay против Thread.Sleep ? В частности, существует ли минимальное значение для обеспечения того, чтобы один был эффективным / действенным по сравнению с другим? Наконец, поскольку Task.Delay вызывает переключение контекста на автомате асинхронного...

378
В чем разница между задачей и потоком?

В C # 4.0 мы имеем Taskв пространстве имен System.Threading.Tasks . В чем истинная разница между Threadи Task. Я сделал несколько примеров программ (помощь взята из MSDN) для собственного обучения Parallel.Invoke Parallel.For Parallel.ForEach но есть много сомнений, так как идея не так ясна....

322
Как безопасно вызвать асинхронный метод в 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...

318
Синхронно ожидает асинхронную операцию и почему Wait () останавливает программу здесь

Предисловие : я ищу объяснение, а не просто решение. Я уже знаю решение. Несмотря на то, что я потратил несколько дней на изучение статей MSDN об асинхронном шаблоне на основе задач (TAP), асинхронности и ожидания, я все еще немного озадачен некоторыми мелочами. Я пишу регистратор для приложений...

283
Поймать исключение, выданное асинхронным пустым методом

Используя асинхронную CTP от Microsoft для .NET, возможно ли перехватить исключение, вызванное асинхронным методом в вызывающем методе? public async void Foo() { var x = await DoSomethingAsync(); /* Handle the result, but sometimes an exception might be thrown. For example, DoSomethingAsync gets...

267
Parallel.ForEach vs Task.Factory.StartNew

В чем разница между приведенными ниже фрагментами кода? Не будут ли оба использовать потоки потоков? Например, если я хочу вызвать функцию для каждого элемента в коллекции, Parallel.ForEach<Item>(items, item => DoSomething(item)); vs foreach(var item in items) { Task.Factory.StartNew(()...

265
Запуск нескольких асинхронных задач и ожидание их завершения

Мне нужно запустить несколько асинхронных задач в консольном приложении и дождаться их завершения перед дальнейшей обработкой. Есть много статей, но я, кажется, растерялся, когда больше читаю. Я прочитал и понял основные принципы библиотеки задач, но мне явно не хватает ссылки где-то. Я понимаю,...

237
Ожидание нескольких задач с разными результатами

У меня есть 3 задачи: private async Task<Cat> FeedCat() {} private async Task<House> SellHouse() {} private async Task<Tesla> BuyCar() {} Все они должны быть запущены, прежде чем мой код сможет продолжить работу, и мне нужны результаты каждого из них. Ни один из результатов не...

231
Вызов асинхронного метода синхронно

У меня есть asyncметод: public async Task<string> GenerateCodeAsync() { string code = await GenerateCodeService.GenerateCodeAsync(); return code; } Мне нужно вызвать этот метод из синхронного метода. Как я могу сделать это, не дублируя GenerateCodeAsyncметод, чтобы он работал синхронно?...

223
Токен аннулирования в конструкторе задач: почему?

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

199
Когда следует использовать TaskCompletionSource <T>?

AFAIK, все, что он знает, - это то, что в какой-то момент вызывается его метод SetResultили SetExceptionметод для завершения Task<T>экспонирования через его Taskсвойство. Другими словами, он выступает в качестве производителя для Task<TResult>и его завершения. Я видел здесь пример: Если...

198
Нет ConcurrentList <T> в .Net 4.0?

Я был рад увидеть новое System.Collections.Concurrentпространство имен в .Net 4.0, довольно приятно! Я видел ConcurrentDictionary, ConcurrentQueue,ConcurrentStack , ConcurrentBagи BlockingCollection. Одна вещь, которая, кажется, таинственно отсутствует, это ConcurrentList<T> . Я должен...