«async-await» etiketlenmiş sorular

Bu, zaman uyumsuz ve beklenen anahtar kelimeleri kullanarak çeşitli programlama dilleri tarafından desteklenen zaman uyumsuz programlama modelini kapsar.

20
ForEach döngüsüyle async / await kullanma
Bir döngü içinde async/ kullanmayla ilgili herhangi bir sorun var mı? Ben bir dizi dosya ve her dosyanın içeriği üzerinde döngü çalışıyorum .awaitforEachawait import fs from 'fs-promise' async function printFiles () { const files = await getFilePaths() // Assume this works fine files.forEach(async (file) => { const contents = await …

21
'Eşzamansız' ve 'bekliyor' nasıl ve ne zaman kullanılır?
Anladığım kadarıyla asyncveawait yapılacak en önemli şeylerden biri, kodun yazılmasını ve okunmasını kolaylaştırmaktır - ancak bunları uzun süreli mantık gerçekleştirmek için arka plan iş parçacıklarına eşittir mi? Şu anda en temel örneği deniyorum. Satır içi bazı yorumlar ekledim. Benim için açıklığa kavuşturabilir misin? // I don't understand why this method …

16
C # zaman uyumlu yöntemden zaman uyumsuz yöntemi nasıl çağırılır?
Sahibim public async void Foo()Eşzamanlı yöntemden aramak istediğim yöntem var. Şimdiye kadar MSDN belgelerinde gördüğüm tek şey, zaman uyumsuz yöntemlerle zaman uyumsuz yöntemler çağırıyor, ama tüm programım zaman uyumsuz yöntemlerle inşa edilmemiştir. Bu mümkün mü? Bu yöntemleri eşzamansız bir yöntemle çağırmanın bir örneği: http://msdn.microsoft.com/en-us/library/hh300224(v=vs.110).aspx Şimdi bu asenkron yöntemleri senkronizasyon yöntemlerinden …
862 c#  async-await 

24
Zaman uyumsuz bir Görev <T> yöntemini eşzamanlı olarak nasıl çalıştırabilirim?
Async / await hakkında öğreniyorum ve eşzamanlı olarak bir async yöntemini çağırmak gereken bir durumla karşılaştım. Bunu nasıl yapabilirim? Zaman uyumsuz yöntem: public async Task&lt;Customers&gt; GetCustomers() { return await Service.GetCustomersAsync(); } Normal kullanım: public async void GetCustomers() { customerList = await GetCustomers(); } Aşağıdaki kullanarak denedim: Task&lt;Customer&gt; task = GetCustomers(); …

4
Tüm sunucu tarafı kodu için ConfigureAwait'i çağırmak için en iyi yöntem
Sunucu tarafı kodunuz varsa (yani bazıları ApiController) ve işlevleriniz eşzamansız olduğunda - böylece geri döner Task&lt;SomeObject&gt;- çağırdığınız işlevleri beklediğiniz her zaman en iyi yöntem olarak kabul edilir ConfigureAwait(false)mi? İplik bağlamlarını orijinal iplik bağlamına geri döndürmek zorunda olmadığından daha performanslı olduğunu okumuştum. Ancak, ASP.NET Web Api ile, isteğiniz bir iş parçacığında …


9
Arayüzümün Görev'e dönmesi gerekiyorsa, işlem yapmama uygulamasının en iyi yolu nedir?
Aşağıdaki kodda, arabirim nedeniyle, sınıfın LazyBaryönteminden bir görev döndürmesi gerekir (ve sake argümanları değiştirilemez). Eğer LazyBaryönteminden bir No-Operasyon görevi döndürmek için en iyi yolu nedir - s uygulaması hızla ve eşzamanlı çalışmasına olur sıradışı mı? Birlikte gitmiş Task.Delay(0)ancak işlevi denir, bu herhangi bir performans yan etkileri varsa bilmek istiyorum, aşağıda …

5
Birden çok görev için zaman uyumsuz / beklemeyi kullanma
Tamamen eşzamansız bir API istemcisi kullanıyorum, yani, her işlem ya döndürür Taskya da Task&lt;T&gt;, örneğin: static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.DeletePost(siteId, postId); // call API client Console.WriteLine("Deleted post {0}.", siteId); } C # 5 zaman uyumsuz / bekleyen işleçlerini kullanarak, birden çok görevi başlatmak …

8
Kilit ifadesinin gövdesi içinde neden 'bekliyor' işlecini kullanamıyorum?
Bir kilit ifadesinden C # (.NET Async CTP) içindeki anahtar kelimeye izin verilmez. Kimden MSDN : Beklenen bir ifade, bir eşzamanlı işlevde, bir sorgu ifadesinde, bir istisna işleme ifadesinin yakalama veya son olarak bloğunda, bir kilit ifadesinin bloğunda veya güvenli olmayan bir bağlamda kullanılamaz. Bunun, derleyici ekibinin bir nedenden dolayı …
348 c#  .net  async-await 


6
Task.Result .GetAwaiter.GetResult () ile aynı mı?
Son zamanlarda çok sayıda asenkron yöntem kullanan bazı kodları okuyordum, ancak bazen bunları eşzamanlı olarak yürütmesi gerekiyor. Kod: Foo foo = GetFooAsync(...).GetAwaiter().GetResult(); Bu aynı mı? Foo foo = GetFooAsync(...).Result;
328 c#  async-await 

11
Güvenli bir şekilde zaman uyumsuz bir yöntem C # beklemek olmadan nasıl çağırılır
asyncHiçbir veri döndüren bir yöntem var : public async Task MyAsyncMethod() { // do some stuff async, don't return any data } Bu bazı veri döndürür başka bir yöntemden çağırıyorum: public string GetStringData() { MyAsyncMethod(); // this generates a warning and swallows exceptions return "hello world"; } Arayan MyAsyncMethod()bir "neden …

4
Eşzamansız bir zaman uyumsuz işlem bekliyor ve neden bekle () programı burada donduruyor
Önsöz : Sadece bir çözüm değil, bir açıklama arıyorum. Çözümü zaten biliyorum. Görev tabanlı Eşzamansız Kalıp (TAP), zaman uyumsuz ve beklemedeki MSDN makalelerini inceleyerek birkaç gün geçirmeme rağmen, hala bazı ince detaylar hakkında biraz kafam karıştı. Windows Mağazası Uygulamaları için bir kaydedici yazıyorum ve hem eşzamansız hem de eşzamanlı günlük …

2
Task.Run komutunu doğru bir şekilde kullandığınızda ve yalnızca eşzamansız beklerken
Size ne zaman kullanacağınız konusunda doğru mimari hakkındaki fikrinizi sormak istiyorum Task.Run. WPF .NET 4.5 uygulamamızda (Caliburn Micro framework ile) tembel kullanıcı arayüzü yaşıyorum. Temelde (çok basitleştirilmiş kod parçacıkları) yapıyorum: public class PageViewModel : IHandle&lt;SomeMessage&gt; { ... public async void Handle(SomeMessage message) { ShowLoadingAnimation(); // Makes UI very laggy, but …

6
HttpClient.GetAsync (…), await / async kullanırken asla geri dönmez
Düzenleme: Bu soru aynı sorun olabilir gibi görünüyor, ancak yanıt yok ... Düzenleme: Sınama durumunda 5. görev WaitingForActivationdurumun içinde kalmış gibi görünür . .NET 4.5'te System.Net.Http.HttpClient kullanarak bazı garip davranışlarla karşılaştım - burada "beklemek" çağrısı sonucu (örneğin) httpClient.GetAsync(...)asla dönmeyecek. Bu, yalnızca yeni eşzamansız / bekliyor dil işlevselliği ve Görevler API'sı …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.