Описание тега configureawait

ConfigureAwait — это метод .NET, доступный для типов Task/ValueTask, который настраивает объект ожидания, используемый для ожидания этих объектов ожидания. Он имеет логический параметр continueOnCapturedContext, который принимает значение true, чтобы маршалировать продолжение обратно к исходному захваченному контексту, или false, чтобы не захватывать контекст.
2 ответа

Web API - ConfigureAwait(true) не работает, как я думал

У меня возникли проблемы с пониманием входных и выходных данных "continueOnCapturedContext" с точки зрения.NET v4.6 WebAPI 2. Проблема, с которой я столкнулся, заключается в том, что между ConfigureAwait(true) и ConfigureAwait(false) нет никакой раз…
1 ответ

Все еще запутался в ConfigureAwait(false), используемом с GetAwaiter и GetResult в C#. Получение тупика или метод, не возвращающийся

Я прочитал: http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html и принятый ответ в тупике даже после использования ConfigureAwait(false) в потоке Asp.Net, но я просто слишком плотно, чтобы увидеть, что происходит. У меня есть код: pr…
25 янв '19 в 20:35
0 ответов

async Task<T>() не сразу возвращается, когда не используется await

Если у меня есть следующая функция public async Task&lt;bool&gt; Foo() { // call many async functions await Bar1().ConfigureAwait(false); await Bar2().ConfigureAwait(false); return await Bar3().ConfigureAwait(false); } Если я вызову функцию выше var…
27 июл '18 в 07:37
1 ответ

Асинхронные методы с или без ConfigureAwait в NetStandard lib для Net Core

У меня есть библиотека, которая делает массовую вставку.Библиотека является расширением EfCore, созданным в.NetStandard(1.4), поэтому ее можно использовать в проектах ASP.NET Core, ориентированных как на.NetCore(1.0+), так и на полную версию NetFram…
1 ответ

ConfigureAwait(false) с объектом ADO.Net SQLConnection

Я начал использовать ConfigureAwait(false) со всеми асинхронными объектами sql. connection.OpenAsync().ConfigureAwait(false); cmd.ExecuteNonQueryAsync().ConfigureAwait(false); Но я обеспокоен тем, будут ли какие-либо последствия этого подхода? Поско…
1 ответ

Как правильно заблокировать асинхронный код?

У меня есть тонны кода, написанного следующим образом: public string SomeSyncOperation(int someArg) { // sync code SomeAsyncOperation(someArg, someOtherArg).ConfigureAwait(false).GetAwaiter().GetResult() // sync code }; Здесь у нас есть некоторый ко…
11 июл '17 в 12:23
1 ответ

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

Какова лучшая практика при возврате следующей задачи: public async Task&lt;Command&gt; BuildCommunicationCommand Как объект: public Command BuildCommand У меня есть следующее: public Command BuildCommand() { return BuildCommunicationCommand().GetAwa…
15 авг '18 в 10:27
0 ответов

Ожидаемый вызов теряет контекст в модульном тесте

У нас есть следующий код ASP.NET (я сократил его для ясности): var httpContent = new StringContent(postData, Encoding.UTF8); using (var client = this.GetClient(url, contentType)) { using (var response = await client.PostAsync(url, httpContent).Confi…
0 ответов

Проверка пользовательского кода для ConfigureAwait

Я создал свой собственный способ по существу устанавливать ConfigureAwait(false) только один раз в верхней части каждого асинхронного метода, что позволяет мне не добавлять приложение ConfigureAwait(false) в конце каждого вызова await. Теперь я могу…
1 ответ

Когда проблематично использование ConfigureAwait(false) в ViewModels?

Интересно, в каких ситуациях у меня возникнут проблемы при использовании ConfigureAwait(false) в моем (Xamarin) подходе MVVM. Это происходит главным образом потому, что я не полностью понимаю контекст синхронизации, который вид и модель вида, и ее с…
10 дек '18 в 14:47
2 ответа

Почему ConfigureAwait(false) не работает, пока Task.Run() работает?

Я вызываю асинхронный библиотечный метод с ConfigureAwait(false). Но я все еще в тупике. (Я использую его в API контроллера ASP.NET) Но, если я использую тот же метод, заключенный в Task.Run(), он работает нормально. Насколько я понимаю, если метод …
15 апр '16 в 18:31
0 ответов

Вызов асинхронного метода в тупике Net3.5

Я использую.net3.5 и у меня установлено следующее Эта операция зависает. Может кто-нибудь сказать мне, что я должен делать по-другому? HttpClient Client; response = await Client.SendAsync(request, cancellationToken).ConfigureAwait(false); У меня был…
21 апр '17 в 09:17
2 ответа

Всегда ли ConfigureAwait(true) возвращается в исходный поток, даже если метод вызываемого объекта внутренне выполняет ConfigureAwait(false)?

Я ожидал вернуться к теме № 1 в местоположении 1.2, но не сделал этого. Есть ли способ вернуться к потоку пользовательского интерфейса после выполнения асинхронного вызова? Спасибо Также я не могу сделать метод верхнего уровня асинхронным. Не уверен…
31 май '18 в 03:40
1 ответ

Задача не переходит в ошибочное состояние, если для ConfigurAwait установлено значение False

Вот что я пытаюсь достичь. Я запускаю задачу и не делаю ожидания / результата. Чтобы убедиться, что если запущенная задача перейдет в состояние сбоя (например, сгенерировать исключение), я завершу процесс, вызвав Environment FailFast в Continuation.…
3 ответа

Regex, чтобы найти отсутствующий ConfigureAwait

У меня есть определенный шаблон, который я хочу найти в Visual Studio 2015. В основном, я хочу искать строки, которые содержат await, но отсутствуют ConfigureAwait в конце заявления. У меня есть несколько шаблонов, которые работают в regex-testers, …
0 ответов

AsyncLocal<T> с ASP.NET Web API и приложениями WCF

У меня есть ASP.NET Web API и приложения WCF. Мне нужен "неявный" контекст, который будет передаваться с каждым запросом. В основном хранит переменные, необходимые для регистрации, или некоторые важные заголовки, которые могут изменить поведение вып…
1 ответ

Альтернатива ConfigureAwait

У меня есть код C#, который я на самом деле портирую на VB.Net. Теперь я заметил, что ConfigureAwait(false) используется везде. Требуется, чтобы код зависел от.Net 4.0 Как вы, возможно, знаете... ConfigureAwait(false) появляется в.Net 4.5. Как бы я …
0 ответов

Разрешение мультитенантной информации из HttpContext и асинхронных вызовов

Я занимаюсь разработкой многопользовательского приложения ASP.NET MVC. В мультитенантном приложении первый аспект мультитенантности - это идентификация арендаторов на основе информации, доступной в текущем запросе. Это приложение использует OpenID C…
19 дек '17 в 17:47
2 ответа

Должен ли я использовать configure await во всех методах или только в первом методе?

У меня есть библиотека с асинхронными методами, и я прочитал, что для библиотек рекомендуется использовать ConfigureAwait(false), Например, если у меня есть что-то вроде: public async Task myMethod01() { await myMethod02(); } private async Task myMe…
25 май '19 в 10:55
2 ответа

Почему этот асинхронный код не продолжает работать в том же контексте, в котором он ожидался?

Я пытаюсь понять, как работает Task.ContinueWith. Рассмотрим следующий код: private async void HandleButtonClick(object sender, EventArgs e) { Console.WriteLine($"HandleButtonClick: a {GetTrdLabel()}"); var t1 = Task.Run(() =&gt; DoSomethingAsync("F…
04 апр '19 в 16:31