async-await- все статьи тега ➜ страница 2


Почему не все функции должны быть асинхронными по умолчанию?

The async-await шаблон .net 4.5 меняется парадигма. Это слишком хорошо, чтобы быть правдой. я портировал некоторый IO-тяжелый код на async-await, потому что блокировка осталась в прошлом. довольно много людей сравнивают async-await с заражением зомби, и я обнаружил, что это довольно точно. Асинхронный код любит другой асинхронный код (вам нужна асинхронная функция для ожидания асинхронной функции). Таким образом, все больше и больше функций становятся асинхронными и это продолжает расти в код ...

Как я могу предотвратить Синхронное продолжение задачи?

у меня есть некоторые библиотеки (сокет сети) код, который обеспечивает Task-основанный API для ожидающих ответов на запросы, основанный на TaskCompletionSource<T>. Однако в TPL есть раздражение в том, что, похоже, невозможно предотвратить синхронные продолжения. Что бы я как чтобы быть в состоянии сделать это: рассказать TaskCompletionSource<T> то есть не должно позволять абонентам присоединяться с TaskContinuationOptions.ExecuteSynchronously или установить результат (SetResult/Tr ...

Пример async / await, который вызывает взаимоблокировку

я наткнулся на некоторые рекомендации по асинхронному программированию с использованием ключевых слов async/await c#(я новичок в c# 5.0). один из приведенных советов был следующим: стабильность: знайте свои контексты синхронизации ... Некоторые контексты синхронизации не являются реентерабельными и однопоточными. Это означает, что только одна единица работы может быть выполнена в контексте в данный момент времени. Примером этого является поток пользовательского интерфейса Windows или ASP.NET ...

Эффективно использовать async / await с помощью ASP.NET Web API

Я пытаюсь использовать async/await особенность ASP.NET в моем проекте Web API. Я не очень уверен, будет ли это иметь какое-либо значение в производительности моей службы Web API. Ниже приведен рабочий процесс и пример кода из моего приложения. График Работы: UI Application → Web API endpoint (controller) → метод вызова на уровне службы Web API → вызов другой внешней веб-службы. (Здесь мы имеем взаимодействия с БД, так далее.) : public async Task<IHttpActionResult> GetCountries() { ...

Основы сущность метода SaveChanges() и SaveChangesAsync() и найти() и FindAsync()

Я искал различия между двумя парами выше, но не нашел никаких статей, объясняющих четко об этом, а также Когда использовать тот или иной. так в чем разница между SaveChanges() и SaveChangesAsync()? И между Find() и FindAsync()? на стороне сервера, когда мы используем Async методы, нам также нужно добавить await. Таким образом, я не думаю, что это асинхронно на стороне сервера. это только помогает предотвратить пользовательский интерфейс блокировка на стороне клиента браузера? Или есть какие-т ...

Шаблон для вызова службы WCF с помощью async / await

я сгенерировал прокси с операции на основе задач. как эта служба должна быть вызвана правильно (утилизация ServiceClient и OperationContext потом) с помощью async / await? моя первая попытка была: public async Task<HomeInfo> GetHomeInfoAsync(DateTime timestamp) { using (var helper = new ServiceHelper<ServiceClient, ServiceContract>()) { return await helper.Proxy.GetHomeInfoAsync(timestamp); } } будучи ServiceHelper класс, который создает ServiceClient и Opera ...

Разница между TPL & async/await (обработка потоков)

пытаясь понять разницу между TPL & async/await когда дело доходит до создания потока. я считаю, что ОСАГО (TaskFactory.StartNew) работает аналогично ThreadPool.QueueUserWorkItem в том, что он ставит в очередь работу над потоком в пуле потоков. Это конечно, если вы не используете TaskCreationOptions.LongRunning, который создает новый поток. я думал async/await будет работать точно так по существу: TPL: Factory.StartNew( () => DoSomeAsyncWork() ) .ContinueWith( (antecedent) = ...

В чем разница между InvokeAsync и BeginInvoke для диспетчера WPF

Я заметил в .NET 4.5, что диспетчер WPF получил новый набор методов для выполнения материала в потоке диспетчера под названием InvokeAsync. Раньше .NET 4.5 у нас был Invoke и BeginInvoke который обрабатывал это синхронно и асинхронно соответственно. помимо именования и немного разных доступных перегрузок, существуют ли какие-либо существенные различия между BeginInvoke и InvokeAsync методами? Ой, а я уже проверил, как можно awaitЭд: private async Task RunStuffOnUiThread(Action action) { ...

Есть ли что-нибудь вроде асинхронного BlockingCollection?

Я хочу await в результате BlockingCollection<T>.Take() асинхронно, поэтому я не блокирую поток. Ищем что-нибудь вроде этого: var item = await blockingCollection.TakeAsync(); Я знаю, что мог бы сделать это: var item = await Task.Run(() => blockingCollection.Take()); но это как-то убивает всю идею, потому что другой поток (о ThreadPool) блокируется вместо этого. есть ли альтернатива? ...