Pytania otagowane jako task-parallel-library

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.

4
Token anulowania w Konstruktorze zadań: dlaczego?
Niektóre System.Threading.Tasks.Taskkonstruktory przyjmują CancellationTokenjako parametr: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); Zaskakuje mnie to, że z wnętrza metody nie ma sposobu, aby faktycznie dostać się do przekazanego tokena (np. Nic podobnego Task.CurrentTask.CancellationToken). Token musi być dostarczony przez inny mechanizm, taki jak obiekt …

6
Jaka jest różnica między Task.Start / Wait a Async / Await?
Być może czegoś mi brakuje, ale jaka jest różnica między robieniem: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result = Task.Factory.StartNew(DoSomethingThatTakesTime); await result; UpdateLabelToSayItsComplete(); } private void DoSomethingThatTakesTime() { Thread.Sleep(10000); }

11
Kiedy należy użyć TaskCompletionSource <T>?
AFAIK, wszystko, co wie, to to, że w pewnym momencie wywoływana jest jego metoda SetResultlub SetExceptionmetoda w celu uzupełnienia Task&lt;T&gt;ekspozycji poprzez swoją Taskwłaściwość. Innymi słowy, działa jako producent dla Task&lt;TResult&gt;i jego ukończenia. Widziałem tutaj przykład: Jeśli potrzebuję sposobu, aby wykonać Func asynchronicznie i mam zadanie reprezentujące tę operację. public static …

11
Brak ConcurrentList <T> w .Net 4.0?
Byłem zachwycony, widząc nową System.Collections.Concurrentprzestrzeń nazw w .Net 4.0, całkiem fajnie! Widziałem ConcurrentDictionary, ConcurrentQueue, ConcurrentStack, ConcurrentBagi BlockingCollection. Jedną z rzeczy, której wydaje się być tajemniczo brakuje, jest ConcurrentList&lt;T&gt;. Czy sam muszę to napisać (lub pobrać z Internetu :))? Czy brakuje mi czegoś oczywistego?


3
czekają vs Task.Wait - Deadlock?
Nie do końca rozumiem różnicę między Task.Waiti await. Mam coś podobnego do następujących funkcji w usłudze WebAPI ASP.NET: public class TestController : ApiController { public static async Task&lt;string&gt; Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task&lt;string&gt; Bar() { return await Foo(); } public async static Task&lt;string&gt; Ros() …

6
HttpClient - zadanie zostało anulowane?
Działa dobrze, gdy ma jedno lub dwa zadania, ale zgłasza błąd „Zadanie zostało anulowane”, gdy mamy na liście więcej niż jedno zadanie. List&lt;Task&gt; allTasks = new List&lt;Task&gt;(); allTasks.Add(....); allTasks.Add(....); Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken); private static Task&lt;T&gt; HttpClientSendAsync&lt;T&gt;(string url, object data, HttpMethod method, string contentType, CancellationToken token) { HttpRequestMessage httpRequestMessage = new HttpRequestMessage(method, …



9
Zagnieżdżanie czeka w Parallel.ForEach
W aplikacji metra muszę wykonać wiele połączeń WCF. Istnieje wiele połączeń, które należy wykonać, więc muszę je wykonywać w pętli równoległej. Problem polega na tym, że pętla równoległa kończy się przed zakończeniem wszystkich wywołań WCF. Jak zmieniłbyś to tak, aby działało zgodnie z oczekiwaniami? var ids = new List&lt;string&gt;() { …

4
Jak anulować oczekujące zadanie?
Gram z tymi zadaniami Windows 8 WinRT i próbuję anulować zadanie przy użyciu poniższej metody i do pewnego momentu działa. Metoda CancelNotification DOES jest wywoływana, co powoduje, że myślisz, że zadanie zostało anulowane, ale w tle zadanie jest nadal uruchomione, a po jego zakończeniu stan zadania jest zawsze ukończony i …

7
Kiedy pozbyć się CancellationTokenSource?
Klasa CancellationTokenSourcejest jednorazowa. Szybkie spojrzenie w Reflector dowodzi użycia KernelEvent(bardzo prawdopodobne) niezarządzanego zasobu. Ponieważ CancellationTokenSourcenie ma finalizatora, jeśli go nie wyrzucimy, GC tego nie zrobi. Z drugiej strony, jeśli spojrzysz na przykłady wymienione w artykule MSDN Anulowanie w zarządzanych wątkach , tylko jeden fragment kodu usuwa token. Jaki jest właściwy …


5
Równoległe foreach z asynchroniczną lambdą
Chciałbym obsługiwać kolekcję równolegle, ale mam problemy z jej wdrożeniem i dlatego liczę na pomoc. Problem pojawia się, jeśli chcę wywołać metodę oznaczoną jako asynchroniczna w C #, w obrębie lambda pętli równoległej. Na przykład: var bag = new ConcurrentBag&lt;object&gt;(); Parallel.ForEach(myCollection, async item =&gt; { // some pre stuff var …


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.