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 …
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 …
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ż …
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"); …
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ą …
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ę …
Tutaj mamy Gridz Button. Gdy użytkownik kliknie ten przycisk, wykonywana jest metoda z klasy Utility, która zmusza aplikację do kliknięcia na siatce. Przepływ kodu musi się tutaj zatrzymać i nie kontynuować, dopóki użytkownik nie kliknie przycisku Grid. Miałem wcześniej podobne pytanie: Poczekaj, aż użytkownik kliknie C # WPF W tym …
Jaki jest prawidłowy podpis dla akcji kontrolera, która zwraca IAsyncEnumerable<T>i a, NotFoundResultale jest nadal przetwarzana w sposób asynchroniczny? Użyłem tego podpisu i nie można go skompilować, ponieważ IAsyncEnumerable<T>nie jest to oczekiwane: [HttpGet] public async Task<IActionResult> GetAll(Guid id) { try { return Ok(await repository.GetAll(id)); // GetAll() returns an IAsyncEnumerable } catch …
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 …
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<ProcessingArgs> Processing { get; } public int Process() { var args = …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.