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.
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 …
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); }
AFAIK, alles was es weiß ist, dass irgendwann seine SetResultoder SetExceptionMethode aufgerufen wird, um die Task<T>Belichtung durch seine TaskEigenschaft zu vervollständigen . Mit anderen Worten, es fungiert als Produzent für a Task<TResult>und dessen Fertigstellung. Ich habe hier das Beispiel gesehen: Wenn ich eine Möglichkeit brauche, eine Func asynchron auszuführen und …
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<T>. Muss ich das selbst schreiben (oder aus dem Internet holen :))? Vermisse ich hier etwas Offensichtliches?
Ich möchte eine fertige Task(nicht Task<T>) erstellen . Ist in .NET etwas eingebaut, um dies zu tun? Eine verwandte Frage: Erstellen Sie eine abgeschlossene Aufgabe <T>
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<string> Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task<string> Bar() { return await Foo(); } public async static …
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<Task> allTasks = new List<Task>(); allTasks.Add(....); allTasks.Add(....); Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken); private static Task<T> HttpClientSendAsync<T>(string url, object data, HttpMethod method, string contentType, CancellationToken token) { …
Ich habe Methode: private static void Method() { Console.WriteLine("Method() started"); for (var i = 0; i < 20; i++) { Console.WriteLine("Method() Counter = " + i); Thread.Sleep(500); } Console.WriteLine("Method() finished"); } Und ich möchte diese Methode in einer neuen Aufgabe starten. Ich kann so eine neue Aufgabe starten var task …
In C # und TPL ( Task Parallel Library ) stellt die TaskKlasse eine laufende Arbeit dar, die einen Wert vom Typ T erzeugt. Ich möchte wissen, was für die Task.FromResult- Methode erforderlich ist. Das heißt: In einem Szenario, in dem Sie den produzierten Wert bereits zur Hand haben, was …
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 …
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 …
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 …
In den letzten Tagen habe ich die neuen Funktionen von .net 4.5 und c # 5 getestet. Ich mag die neuen Async / Wait-Funktionen. Früher hatte ich BackgroundWorker verwendet , um längere Prozesse im Hintergrund mit reaktionsschneller Benutzeroberfläche zu verarbeiten. Meine Frage ist: Nach diesen netten neuen Funktionen, wann sollte …
Ich habe gerade 3 Routinen bezüglich der TPL-Verwendung gesehen, die den gleichen Job machen. Hier ist der Code: public static void Main() { Thread.CurrentThread.Name = "Main"; // Create a task and supply a user delegate by using a lambda expression. Task taskA = new Task( () => Console.WriteLine("Hello from taskA.")); …
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(); ... } …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.