Pytania otagowane jako async-await

Obejmuje to asynchroniczny model programowania obsługiwany przez różne języki programowania, przy użyciu słów kluczowych async i await.

2
Czy słowo kluczowe Async await jest równoważne z wyrażeniem lambda ContinueWith?
Czy ktoś mógłby być na tyle uprzejmy, aby potwierdzić, czy poprawnie zrozumiałem słowo kluczowe Async await? (Korzystanie z wersji 3 CTP) Jak dotąd odkryłem, że wstawienie słowa kluczowego await przed wywołaniem metody zasadniczo robi dwie rzeczy: A. Tworzy natychmiastowy powrót i B. Tworzy „kontynuację”, która jest wywoływana po zakończeniu wywołania …

3
Dlaczego nie można rozpoznać testów jednostkowych „async void”?
async void testów jednostkowych nie można uruchomić w programie Visual Studio 2012: [TestClass] public class MyTestClass { [TestMethod] public async void InvisibleMyTestMethod() { await Task.Delay(1000); Assert.IsTrue(true); } } Jeśli chcę mieć asynchroniczny test jednostkowy, metoda testowa musi zwrócić Task: [TestMethod] public async Task VisibleMyTestMethod() { await Task.Delay(1000); Assert.IsTrue(true); } Dlaczego …

5
Funkcja asynchroniczna z + =
let x = 0; async function test() { x += await 5; console.log('x :', x); } test(); x += 1; console.log('x :', x); Uruchom fragment koduHide resultsRozwiń fragment kodu xZarejestrowane wartości to 1i 5. Moje pytanie brzmi: dlaczego wartość x 5drugiego dziennika? Jeśli polecenie testjest wykonywane po x += 1(ponieważ …

4
Właściwy sposób radzenia sobie z wyjątkami w AsyncDispose
Podczas przechodzenia na nową platformę .NET Core 3 IAsynsDisposablenatknąłem się na następujący problem. Rdzeń problemu: jeśli DisposeAsynczgłasza wyjątek, wyjątek ten ukrywa wszelkie wyjątki await usingzgłoszone w bloku. class Program { static async Task Main() { try { await using (var d = new D()) { throw new ArgumentException("I'm inside using"); …

3
Dlaczego kontynuacje Task.WhenAll są wykonywane synchronicznie?
Właśnie zrobiłem ciekawą obserwację dotyczącą tej Task.WhenAllmetody, gdy działałem na .NET Core 3.0. Przekazałem proste Task.Delayzadanie jako pojedynczy argument Task.WhenAlli spodziewałem się, że zapakowane zadanie będzie zachowywać się identycznie jak zadanie pierwotne. Ale tak nie jest. Kontynuacje pierwotnego zadania są wykonywane asynchronicznie (co jest pożądane), a kontynuacje wielu Task.WhenAll(task)opakowań są …

2
Używanie do oczekiwania… lub z synchronicznymi iteracjami
MDN mówi, że for await...of ma dwa przypadki użycia: for await...ofInstrukcja tworzy pętlę iteracji nad asynchroniczny iterable obiektów, jak również na iterables synchronizacji ... Wcześniej zdawałem sobie sprawę z pierwszego: asynchroniczne iterowanie przy użyciu Symbol.asyncIterator. Ale interesuje mnie teraz to drugie: iteracje synchroniczne. Poniższy kod iteruje iterację synchroniczną - tablicę …

1
Jak mogę umieścić funkcję asynchroniczną na mapie w Rust?
Nie mogę obsłużyć funkcji asynchronicznych podczas pisania routera asynchronicznego hyper. Ten kod: use std::collections::HashMap; use std::future::Future; type BoxedResult<T> = Result<T, Box<dyn std::error::Error + Send + Sync>>; type CalcFn = Box<dyn Fn(i32, i32) -> dyn Future<Output = BoxedResult<i32>>>; async fn add(a: i32, b: i32) -> BoxedResult<i32> { Ok(a + b) } …
11 rust  async-await 


1
Zwracanie IAsyncEnumerable <T> i NotFound z kontrolera Asp.Net Core
Jaki jest prawidłowy podpis dla akcji kontrolera, która zwraca IAsyncEnumerable&lt;T&gt;i a, NotFoundResultale jest nadal przetwarzana w sposób asynchroniczny? Użyłem tego podpisu i nie można go skompilować, ponieważ IAsyncEnumerable&lt;T&gt;nie jest to oczekiwane: [HttpGet] public async Task&lt;IActionResult&gt; GetAll(Guid id) { try { return Ok(await repository.GetAll(id)); // GetAll() returns an IAsyncEnumerable } catch …

1
Jak korzystać z async fn Rust, który przyjmuje odwołanie jako wywołanie zwrotne?
async fnzwraca anonimowy typ, który implementuje Future, więc jeśli chcemy użyć go jako wywołania zwrotnego, musimy przekonwertować wartość zwracaną na obiekt cechy. Próbowałem napisać funkcję, aby to zrobić, ale miałem pewne problemy życiowe. async fnzwróci czas życia wszystkich parametrów, więc podpis wywołania zwrotnego również musi. Jak mogę dodać czas życia …
10 rust  async-await 

2
Wzorzec delegowania zachowania asynchronicznego w C #
Próbuję zaprojektować klasę, która ujawnia możliwość dodawania problemów związanych z przetwarzaniem asynchronicznym. W programowaniu synchronicznym może to wyglądać public class ProcessingArgs : EventArgs { public int Result { get; set; } } public class Processor { public event EventHandler&lt;ProcessingArgs&gt; Processing { get; } public int Process() { var args = …

3
Jak zadeklarować nie rozpoczęte zadanie, które będzie oczekiwać na inne zadanie?
Zrobiłem ten test jednostkowy i nie rozumiem, dlaczego „czekaj na Task.Delay ()” nie czeka! [TestMethod] public async Task SimpleTest() { bool isOK = false; Task myTask = new Task(async () =&gt; { Console.WriteLine("Task.BeforeDelay"); await Task.Delay(1000); Console.WriteLine("Task.AfterDelay"); isOK = true; Console.WriteLine("Task.Ended"); }); Console.WriteLine("Main.BeforeStart"); myTask.Start(); Console.WriteLine("Main.AfterStart"); await myTask; Console.WriteLine("Main.AfterAwait"); Assert.IsTrue(isOK, "OK"); } …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.