Biblioteka równoległa zadań jest częścią .NET Framework od .NET 4. Jest to zestaw interfejsów API umożliwiających programistom programowanie aplikacji asynchronicznych.
Jeśli masz kod po stronie serwera (np. Niektóre ApiController), a twoje funkcje są asynchroniczne - więc zwracają się Task<SomeObject>- czy jest najlepszą praktyką, że za każdym razem czekasz na funkcje, które wywołujesz ConfigureAwait(false)? Przeczytałem, że jest bardziej wydajny, ponieważ nie musi przełączać kontekstów wątków z powrotem do oryginalnego kontekstu wątków. …
W poniższym kodzie, ze względu na interfejs, klasa LazyBarmusi zwrócić zadanie ze swojej metody (i ze względu na argumenty nie można go zmienić). Jeśli LazyBarimplementacja jest niezwykła, ponieważ zdarza się, że działa szybko i synchronicznie - jaki jest najlepszy sposób na zwrócenie zadania braku operacji z metody? Przeszedłem Task.Delay(0)poniżej, jednak …
Korzystam z klienta API, który jest całkowicie asynchroniczny, to znaczy każda operacja albo zwraca, Taskalbo Task<T>np .: static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.DeletePost(siteId, postId); // call API client Console.WriteLine("Deleted post {0}.", siteId); } Używając operatorów asynchronicznych / oczekujących C # 5, jaki jest właściwy …
Chcę poczekać na zakończenie zadania <T> z pewnymi specjalnymi regułami: jeśli nie zakończyło się ono po X milisekundach, chcę wyświetlić wiadomość dla użytkownika. A jeśli nie zakończy się po upływie milisekund Y, chcę automatycznie poprosić o anulowanie . Mogę użyć Task.ContinueWith, aby asynchronicznie czekać na zakończenie zadania (tj. Zaplanować wykonanie …
Czy istnieją dobre reguły, kiedy należy używać Task.Delay kontra Thread.Sleep ? W szczególności, czy istnieje minimalna wartość zapewniająca, aby jedna była skuteczna / wydajna w stosunku do drugiej? Wreszcie, skoro Task.Delay powoduje przełączanie kontekstu na maszynie stanu asynchronicznie / oczekuj, czy jest narzut związany z jego używaniem?
W języku C # 4.0, mamy Taskw System.Threading.Tasks nazw. Jaka jest prawdziwa różnica między Threadi Task. Zrobiłem jakiś przykładowy program (pomoc wzięta z MSDN) dla własnego uczenia się Parallel.Invoke Parallel.For Parallel.ForEach ale mają wiele wątpliwości, ponieważ pomysł nie jest tak jasny. Początkowo szukałem w Stackoverflow podobnego typu pytania, ale być …
Mam interfejs, który deklaruje Task DoSomethingAsync(); Używam MoqFramework do moich testów: [TestMethod()] public async Task MyAsyncTest() { Mock<ISomeInterface> mock = new Mock<ISomeInterface>(); mock.Setup(arg => arg.DoSomethingAsync()).Callback(() => { <my code here> }); ... } Następnie w teście wykonuję kod, który się wywołuje await DoSomethingAsync(). A test po prostu kończy się niepowodzeniem …
Mam asyncmetodę, która nie zwraca danych: public async Task MyAsyncMethod() { // do some stuff async, don't return any data } Wywołuję to z innej metody, która zwraca niektóre dane: public string GetStringData() { MyAsyncMethod(); // this generates a warning and swallows exceptions return "hello world"; } Wywołanie MyAsyncMethod()bez oczekiwania …
Przedmowa : Szukam wyjaśnienia, a nie tylko rozwiązania. Znam już rozwiązanie. Mimo, że spędziłem kilka dni na studiowaniu artykułów MSDN na temat Asynchronicznego Wzorca Asynchronicznego (TAP), asynchronizacji i czekania, nadal jestem nieco zdezorientowany niektórymi szczegółami. Piszę program rejestrujący dla aplikacji ze Sklepu Windows i chcę obsługiwać zarówno rejestrowanie asynchroniczne, jak …
Czy przy użyciu asynchronicznego protokołu CTP firmy Microsoft dla platformy .NET można wychwycić wyjątek zgłoszony przez metodę asynchroniczną w metodzie wywołującej? public async void Foo() { var x = await DoSomethingAsync(); /* Handle the result, but sometimes an exception might be thrown. For example, DoSomethingAsync gets data from the network …
Jaka jest różnica między poniższymi fragmentami kodu? Czy oba nie będą używać wątków puli wątków? Na przykład, jeśli chcę wywołać funkcję dla każdego elementu w kolekcji, Parallel.ForEach<Item>(items, item => DoSomething(item)); vs foreach(var item in items) { Task.Factory.StartNew(() => DoSomething(item)); }
Muszę uruchomić wiele zadań asynchronicznych w aplikacji konsoli i poczekać na zakończenie wszystkich zadań przed dalszym przetwarzaniem. Istnieje wiele artykułów, ale im bardziej czytam, tym bardziej się mylę. Przeczytałem i rozumiem podstawowe zasady biblioteki Zadań, ale najwyraźniej gdzieś brakuje linku. Rozumiem, że możliwe jest łączenie zadań w taki sposób, aby …
Mam 3 zadania: private async Task<Cat> FeedCat() {} private async Task<House> SellHouse() {} private async Task<Tesla> BuyCar() {} Wszystkie muszą uruchomić się, zanim mój kod będzie mógł kontynuować, a ja też potrzebuję wyników od każdego z nich. Żaden z wyników nie ma ze sobą nic wspólnego Jak zadzwonić i poczekać …
Mam asyncmetodę: public async Task<string> GenerateCodeAsync() { string code = await GenerateCodeService.GenerateCodeAsync(); return code; } Muszę wywołać tę metodę z metody synchronicznej. Jak mogę to zrobić bez konieczności duplikowania GenerateCodeAsyncmetody, aby działała synchronicznie? Aktualizacja Jednak nie znaleziono rozsądnego rozwiązania. Widzę jednak, że HttpClientjuż implementuje ten wzorzec using (HttpClient client = …
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.