Вопросы с тегом «async-await»

Это охватывает модель асинхронного программирования, поддерживаемую различными языками программирования с использованием ключевых слов async и await.

1133
Использование async / await с циклом forEach

Есть ли проблемы с использованием async/ awaitв forEachцикле? Я пытаюсь перебрать массив файлов и awaitсодержимое каждого файла. import fs from 'fs-promise' async function printFiles () { const files = await getFilePaths() // Assume this works fine files.forEach(async (file) => { const contents...

1067
Как и когда использовать «async» и «await»

Из моего понимания одной из главных вещей , которые asyncиawait делает это , чтобы сделать код легко писать и читать - но используют их равный нерест фоновых потоков для выполнения длинной логики продолжительности? Я сейчас пробую самый простой пример. Я добавил несколько комментариев. Можете ли вы...

865
Как вызвать асинхронный метод из синхронного метода в C #?

У меня есть public async void Foo()метод, который я хочу вызвать из синхронного метода. До сих пор все, что я видел из документации MSDN, это вызов асинхронных методов через асинхронные методы, но вся моя программа не построена с асинхронными методами. Это вообще возможно? Вот один пример вызова...

629
Как мне запустить синхронный асинхронный метод Task <T>?

Я изучаю async / await и столкнулся с ситуацией, когда мне нужно синхронно вызывать асинхронный метод. Как я могу это сделать? Асинхронный метод: public async Task<Customers> GetCustomers() { return await Service.GetCustomersAsync(); } Нормальное использование: public async void...

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...

360
Task.Result - это то же самое, что .GetAwaiter.GetResult ()?

Недавно я читал код, в котором используется много асинхронных методов, но иногда их нужно выполнять синхронно. Код делает: Foo foo = GetFooAsync(...).GetAwaiter().GetResult(); Это то же самое, что Foo foo = GetFooAsync(...).Result;...

349
Почему я не могу использовать оператор 'await' в теле оператора блокировки?

Ключевое слово await в C # (.NET Async CTP) не допускается из оператора блокировки. Из MSDN : Выражение await нельзя использовать в синхронной функции, в выражении запроса, в блоке catch или finally оператора обработки исключений, в блоке оператора блокировки или в небезопасном контексте. Я...

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), асинхронности и ожидания, я все еще немного озадачен некоторыми мелочами. Я пишу регистратор для приложений...

318
Когда правильно использовать Task.Run, а когда просто async-await

Я хотел бы спросить вас о вашем мнении о правильной архитектуре, когда использовать Task.Run. Я испытываю медленный пользовательский интерфейс в нашем приложении WPF .NET 4.5 (с платформой Caliburn Micro). В основном я делаю (очень упрощенные фрагменты кода): public class PageViewModel :...

315
HttpClient.GetAsync (…) никогда не возвращается при использовании await / async

Изменить: Этот вопрос выглядит, как будто это может быть та же проблема, но не имеет ответов ... Изменить: в тестовом примере 5 задача застряла в WaitingForActivationсостоянии. Я столкнулся с каким-то странным поведением при использовании System.Net.Http.HttpClient в .NET 4.5, где «ожидание»...

307
Сочетание асинхронной функции + ожидание + setTimeout

Я пытаюсь использовать новые асинхронные функции и надеюсь, что решение моей проблемы поможет другим в будущем. Это мой код, который работает: async function asyncGenerator() { // other code while (goOn) { // other code var fileList = await listFiles(nextPageToken); var parents = await...

304
Вы должны поместить Task.Run в метод, чтобы сделать его асинхронным?

Я пытаюсь понять асинхронное ожидание в простейшей форме. Я хочу создать очень простой метод, который добавляет два числа ради этого примера, конечно, это совсем не время обработки, это просто вопрос формулировки примера здесь. Пример 1 private async Task DoWork1Async() { int result = 1 + 2; }...

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...

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

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

252
Какова цель «возврата ждать» в C #?

Есть ли какой - либо сценарий , где метод записи , как это: public async Task<SomeResult> DoSomethingAsync() { // Some synchronous code might or might not be here... // return await DoAnotherThingAsync(); } вместо этого: public Task<SomeResult> DoSomethingAsync() { // Some synchronous...