Als «task-parallel-library» getaggte Fragen

Die Task Parallel Library ist seit .NET 4 Teil von .NET Framework. Es handelt sich um eine Reihe von APIs, mit denen Entwickler asynchrone Anwendungen programmieren können.

4
Storno-Token im Task-Konstruktor: Warum?
Bestimmte System.Threading.Tasks.TaskKonstruktoren verwenden a CancellationTokenals Parameter: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); Was mich daran verblüfft, ist, dass es innerhalb des Methodenkörpers keine Möglichkeit gibt , tatsächlich an das übergebene Token zu gelangen (z. B. nichts dergleichen Task.CurrentTask.CancellationToken). Das Token muss über …

6
Was ist der Unterschied zwischen Task.Start / Wait und Async / Await?
Ich vermisse vielleicht etwas, aber was ist der Unterschied zwischen: 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
Wann sollte TaskCompletionSource <T> verwendet werden?
AFAIK, alles was es weiß ist, dass irgendwann seine SetResultoder SetExceptionMethode aufgerufen wird, um die Task&lt;T&gt;Belichtung durch seine TaskEigenschaft zu vervollständigen . Mit anderen Worten, es fungiert als Produzent für a Task&lt;TResult&gt;und dessen Fertigstellung. Ich habe hier das Beispiel gesehen: Wenn ich eine Möglichkeit brauche, eine Func asynchron auszuführen und …

11
Keine ConcurrentList <T> in .Net 4.0?
Ich war begeistert, den neuen System.Collections.ConcurrentNamespace in .Net 4.0 zu sehen, ganz nett! Ich habe gesehen ConcurrentDictionary, ConcurrentQueue, ConcurrentStack, ConcurrentBagund BlockingCollection. Eine Sache, die auf mysteriöse Weise zu fehlen scheint, ist a ConcurrentList&lt;T&gt;. Muss ich das selbst schreiben (oder aus dem Internet holen :))? Vermisse ich hier etwas Offensichtliches?


3
Warten gegen Task.Warten - Deadlock?
Ich verstehe den Unterschied zwischen Task.Waitund nicht ganz await. Ich habe etwas Ähnliches wie die folgenden Funktionen in einem ASP.NET-WebAPI-Dienst: 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 …

6
HttpClient - Eine Aufgabe wurde abgebrochen?
Es funktioniert einwandfrei, wenn eine oder zwei Aufgaben vorhanden sind. Es wird jedoch der Fehler "Eine Aufgabe wurde abgebrochen" ausgegeben, wenn mehr als eine Aufgabe aufgelistet ist. 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) { …



9
Die Verschachtelung wartet parallel
In einer Metro-App muss ich eine Reihe von WCF-Aufrufen ausführen. Es muss eine erhebliche Anzahl von Anrufen getätigt werden, daher muss ich sie in einer parallelen Schleife ausführen. Das Problem ist, dass die parallele Schleife beendet wird, bevor alle WCF-Aufrufe abgeschlossen sind. Wie würden Sie dies umgestalten, damit es wie …

7
Wann muss CancellationTokenSource entsorgt werden?
Die Klasse CancellationTokenSourceist verfügbar. Ein kurzer Blick in Reflector zeigt die Verwendung KernelEventeiner (sehr wahrscheinlich) nicht verwalteten Ressource. Da CancellationTokenSourcees keinen Finalizer gibt, wird der GC dies nicht tun, wenn wir ihn nicht entsorgen. Wenn Sie sich dagegen die Beispiele ansehen, die im MSDN-Artikel Abbrechen in verwalteten Threads aufgeführt sind …

4
Wie kann ich eine wartende Aufgabe abbrechen?
Ich spiele mit diesen Windows 8 WinRT-Aufgaben und versuche, eine Aufgabe mit der folgenden Methode abzubrechen. Sie funktioniert bis zu einem gewissen Punkt. Die CancelNotification-Methode wird aufgerufen, was den Eindruck erweckt, dass die Aufgabe abgebrochen wurde. Im Hintergrund wird die Aufgabe jedoch weiter ausgeführt. Nach Abschluss wird der Status der …



5
Warum ist CancellationToken von CancellationTokenSource getrennt?
Ich suche nach einer Begründung, warum .NET CancellationTokenstruct zusätzlich zum CancellationTokenSourceUnterricht eingeführt wurde. Ich verstehe, wie die API verwendet werden soll, möchte aber auch verstehen, warum sie so konzipiert ist. Dh warum haben wir: var cts = new CancellationTokenSource(); SomeCancellableOperation(cts.Token); ... public void SomeCancellableOperation(CancellationToken token) { ... token.ThrowIfCancellationRequested(); ... } …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.