async-await- все статьи тега
Почему ключевое слово await в C# 5.0 указано в качестве оператора, а не модификатора?
Библиотека MSDN выводит ключевое слово await в качестве оператора. Это кажется мне странным - я бы подумал, что это модификатор, как ключевое словоasync . Почему это оператор? ...
Javascript Promises vs Async Await. Разница?
Я уже использовал функции ES6 и ES7 (благодаря Babel) в своих приложениях - как мобильных, так и веб -. Первый шаг, очевидно, был сделан к уровням ES6. Я узнал много асинхронных паттернов, обещаний (которые действительно многообещающи), генераторов (не уверен, почему символ*) и т. д., Из всего этого обещания вполне соответствовали моим целям. И я довольно часто использую их в своих приложениях. Вот пример / псевдокод того, как я реализовал базовый обещание - var myPromise = new Promise( ...
Переход на асинхронный: репозиторий
У меня есть большая кодовая база, использующая мои репозитории, которые все реализуют IRespository, и я реализую асинхронные версии методов: T Find(id); Task<T> FindAsync(id); ...etc... Существует несколько видов репозиториев. Самый простой основан на неизменяемой коллекции, где Вселенная сущностей достаточно мала, чтобы заслужить загрузку их всех сразу из БД. Эта нагрузка происходит при первом вызове любого из методов IRepository. Find (4), например, вызовет загрузку, если этого не пр ...
CsvHelper - Чтение Потока Асинхронно
У меня есть служба, которая принимает входной поток, содержащий CSV-данные, которые должны быть массово вставлены в базу данных, и мое приложение использует async/await везде, где это возможно. Процесс таков: проанализируйте поток с помощью CsvParser CsvHelper, добавьте каждую строку в DataTable, используйте SqlBulkCopy для копирования DataTable в базу данных. Данные могут быть любого размера, поэтому я хотел бы избежать чтения всего этого в память за один раз-очевидно, что у меня будут все эт ...
вызов асинхронного метода без ожидания #2
У меня есть асинхронный метод: public async Task<bool> ValidateRequestAsync(string userName, string password) { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); string stringResponse = await response.Content.ReadAsStringAsync(); return bool.Parse(stringResponse); } } Я называю этот метод так: bool isValid = await ValidateRequestAsync("user1", "pass1"); Могу ли я вызвать тот же метод из син ...
Этот асинхронный метод не имеет операторов 'await' и будет выполняться синхронно
Моя программа имеет 3 предупреждения следующего утверждения: Этот асинхронный метод не имеет операторов 'await' и будет выполняться синхронно. Рассмотрите возможность использования оператора 'await' для ожидания неблокирующих вызовов API, или " ждите задания.Бежать(...) 'для выполнения работы, связанной с процессором, в фоновом потоке. Что это за предупреждение ты пытаешься мне сказать? Что же мне делать? Это мой код: он работает с использованием многопоточной обработки? static voi ...
Как бы я мог запустить асинхронный метод задачи синхронно?
Я изучаю async/await и столкнулся с ситуацией, когда мне нужно синхронно вызвать асинхронный метод. Как я могу это сделать? способ асинхронные: public async Task<Customers> GetCustomers() { return await Service.GetCustomersAsync(); } нормальное использование: public async void GetCustomers() { customerList = await GetCustomers(); } Я пробовал использовать следующее: Task<Customer> task = GetCustomers(); task.Wait() Task<Customer> task = GetCustomers(); task.Run ...
Почему я не могу использовать оператор 'await' в теле оператора блокировки?
ключевое слово await в C# (.NET Async CTP) не допускается из инструкции lock. С MSDN: An выражение await не может быть использована в синхронной функции, в запросе выражение в блоке catch или finally обработки исключений заявление,в блоке оператора блокировки, или в небезопасном контексте. Я предполагаю, что это либо сложно, либо невозможно команда компилятора для реализации по какой-то причине. Я попытался обойти с помощью оператора using: class Async { public static async T ...
WaitAll vs WhenAll
в чем разница между Task.WaitAll() и Task.WhenAll() от асинхронного CTP ? Можете ли вы предоставить пример кода для иллюстрации различных вариантов использования ? ...
Когда правильно использовать задачу.Запустите и когда просто асинхронно-ждите
Я хотел бы спросить вас о вашем мнении о правильной архитектуре, когда использовать Task.Run. Я испытываю интерфейс лагает в нашем приложении WPF .Нетто 4.5 применение (с рамками Caliburn микро). в основном я делаю (очень упрощенные фрагменты кода): public class PageViewModel : IHandle<SomeMessage> { ... public async void Handle(SomeMessage message) { ShowLoadingAnimation(); // Makes UI very laggy, but still not dead await this.contentLoader.LoadContentAsync( ...
Создание завершенной задачи
Я хочу создать завершенный Task (не Task<T>). Есть ли что-то встроенное в .NET для этого? соответствующий вопрос: создать завершенную задачу ...
Async / await vs BackgroundWorker
в последние несколько дней я тестировал новые возможности .net 4.5 и c# 5. Мне нравятся его новые функции async / await. Раньше я использовал BackgroundWorker для обработки более длительных процессов в фоновом режиме с адаптивным интерфейсом. мой вопрос: после того, как эти хорошие новые функции, когда я должен использовать async / await и когда BackgroundWorker? Каковы общие сценарии для обоих? ...
Использование async-await on.net 4
в настоящее время я начинаю создавать приложение, которое будет получать большую прибыль от функции асинхронного ожидания C# 5. Но я не уверен, какую версию VS и асинхронной среды выполнения использовать. глядя на диаграммы популярности ОС, мне нужно будет поддерживать Windows XP еще три года или около того. Похоже, .net 4.5 работает только на более новых версиях Windows, поэтому мне нужно нацелиться на .net 4.0. Машины разработки используют Windows 7, поэтому использование более новой версии V ...
Вызов асинхронного метода в конструкторе?
резюме: я хотел бы вызвать асинхронный метод в конструкторе. Это возможно? подробности: у меня есть метод, называемый getwritings() который анализирует данные JSON. Все работает нормально, если я просто позвоню getwritings() на async способ и поставить await слева от него. Однако , когда я создаю LongListView в моей странице и попытаться заполнить его я нахожу, что getWritings() удивительно, возвращающихся null и LongListView is пустой. чтобы решить эту проблему, я попытался изменить тип возвр ...
Как найти, какие обещания не обрабатываются в узле.js UnhandledPromiseRejectionWarning?
узел.js из версии 7 имеет синтаксический сахар async/await для обработки обещаний, и теперь в моем коде довольно часто появляется следующее предупреждение: (node:11057) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: Error: Can't set headers after they are sent. (node:11057) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero ...
Как написать асинхронный метод с параметром out?
Я хочу написать асинхронный метод с , например: public async void Method1() { int op; int result = await GetDataTaskAsync(out op); } как мне это сделать в GetDataTaskAsync? ...
ASP.NET Web API OperationCanceledException когда браузер отменяет запрос
когда пользователь загружает страницу, он делает один или несколько запросов ajax, которые попадают ASP.NET Web API 2 контроллеры. Если пользователь переходит на другую страницу, до завершения этих запросов ajax запросы отменяются браузером. Затем наш Elmah HttpModule регистрирует две ошибки для каждого отмененного запроса: Ошибка 1: System.Threading.Tasks.TaskCanceledException: A task was canceled. at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Ru ...
В чем разница между асинхронным программированием и многопоточностью?
Я думал, что они были в основном то же самое -- написание программ, которые разделяют задачи между процессорами (на машинах, которые имеют 2+ Процессоры). Тогда я читаю https://msdn.microsoft.com/en-us/library/hh191443.aspx, что говорит асинхронные методы предназначены для неблокирующих операций. Гостей ждут выражение в асинхронном методе не блокирует текущий поток, пока ожидаемая задача выполняется. Вместо этого выражение подписывает остальное метода в качестве продолжения и возвращае ...
Как дождаться завершения асинхронного метода?
Я пишу приложение WinForms, которое передает данные на устройство класса USB HID. Мое приложение использует отличную универсальную библиотеку HID v6. 0, которую можно найти здесь. В двух словах, когда мне нужно записать данные на устройство, это код, который называется: private async void RequestToSendOutputReport(List<byte[]> byteArrays) { foreach (byte[] b in byteArrays) { while (condition) { // we'll typically execute this code many times until the ...
Как ограничить количество одновременных асинхронных операций ввода-вывода?
// let's say there is a list of 1000+ URLs string[] urls = { "http://google.com", "http://yahoo.com", ... }; // now let's send HTTP requests to each of these URLs in parallel urls.AsParallel().ForAll(async (url) => { var client = new HttpClient(); var html = await client.GetStringAsync(url); }); вот проблема, он запускает 1000 + одновременных веб-запросов. Существует ли простой способ ограничить одновременное количество этих асинхронных HTTP-запросов? Так что не более 20 веб-страни ...