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.

6
Standardparameter für CancellationToken
Ich habe einen asynchronen Code, zu dem ich einen hinzufügen möchte CancellationToken. Es gibt jedoch viele Implementierungen, bei denen dies nicht erforderlich ist, sodass ich einen Standardparameter haben möchte - vielleicht CancellationToken.None. Jedoch, Task<x> DoStuff(...., CancellationToken ct = null) ergibt Ein Wert vom Typ '' kann nicht als Standardparameter verwendet …

5
Ein asynchrones / wartendes Beispiel, das einen Deadlock verursacht
Ich bin auf einige Best Practices für die asynchrone Programmierung mit c # s async/ awaitkeywords gestoßen (ich bin neu in c # 5.0). Einer der gegebenen Ratschläge war der folgende: Stabilität: Kennen Sie Ihre Synchronisationskontexte ... Einige Synchronisationskontexte sind nicht wiedereintrittsfähig und Single-Threaded. Dies bedeutet, dass jeweils nur eine …

3
Der richtige Weg, um eine nie endende Aufgabe zu implementieren. (Timer gegen Aufgabe)
Daher muss meine App eine Aktion fast ununterbrochen ausführen (mit einer Pause von ungefähr 10 Sekunden zwischen jedem Lauf), solange die App ausgeführt wird oder eine Stornierung angefordert wird. Die zu erledigende Arbeit kann bis zu 30 Sekunden dauern. Ist es besser, einen System.Timers.Timer zu verwenden und AutoReset zu verwenden, …

3
Sie müssen die Verwendung von SemaphoreSlim verstehen
Hier ist der Code, den ich habe, aber ich verstehe nicht, was er SemaphoreSlimtut. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); …



7
Task.Run mit Parameter (n)?
Ich arbeite an einem Multitasking-Netzwerkprojekt und bin neu bei Threading.Tasks. Ich habe eine einfache implementiert Task.Factory.StartNew()und frage mich, wie ich das machen kann Task.Run(). Hier ist der Basiscode: Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); Ich habe System.Threading.Tasks.Taskim Objektbrowser nachgesehen und konnte keinen Action<T>ähnlichen Parameter …

4
Gibt es so etwas wie asynchrone BlockingCollection <T>?
Ich möchte awaitauf das Ergebnis von BlockingCollection&lt;T&gt;.Take()asynchron, damit ich den Thread nicht blockiere. Auf der Suche nach so etwas: var item = await blockingCollection.TakeAsync(); Ich weiß, dass ich das tun kann: var item = await Task.Run(() =&gt; blockingCollection.Take()); aber das tötet irgendwie die ganze Idee, weil ThreadPoolstattdessen ein anderer Thread …

2
Task paralleler Bibliotheksersatz für BackgroundWorker?
Hat die Task-Parallel-Bibliothek etwas, das als Ersatz oder Verbesserung gegenüber der BackgroundWorker-Klasse angesehen werden könnte? Ich habe eine WinForms-Anwendung mit einer Benutzeroberfläche im Assistentenstil, die einige lang laufende Aufgaben ausführt. Ich möchte eine reaktionsfähige Benutzeroberfläche mit dem Standard-Fortschrittsbalken und der Möglichkeit haben, den Vorgang abzubrechen. Ich habe dies bereits mit …


2
Was ist der beste Weg, um Ausnahmen in Task abzufangen?
Mit System.Threading.Tasks.Task&lt;TResult&gt;muss ich die Ausnahmen verwalten, die ausgelöst werden könnten. Ich suche nach dem besten Weg, das zu tun. Bisher habe ich eine Basisklasse erstellt, die alle nicht erfassten Ausnahmen innerhalb des Aufrufs von verwaltet.ContinueWith(...) Ich frage mich, ob es einen besseren Weg gibt, das zu tun. Oder auch wenn …

6
Sollte ich ThreadPools oder Task Parallel Library für IO-gebundene Operationen verwenden?
In einem meiner Projekte, das irgendwie ein Aggregator ist, analysiere ich Feeds, Podcasts und so weiter aus dem Internet. Wenn ich bei einer großen Anzahl von Ressourcen einen sequentiellen Ansatz verwende, dauert es ziemlich lange, alle zu verarbeiten (aufgrund von Netzwerkproblemen und ähnlichen Problemen). foreach(feed in feeds) { read_from_web(feed) parse(feed) …

3
Deserialisieren Sie JSON mit HTTPClient .ReadAsAsync mithilfe des .NET 4.0-Taskmusters in Array oder Liste
Ich versuche, den JSON zu deserialisieren, der von der http://api.usa.gov/jobs/search.json?query=nursing+jobsVerwendung des .NET 4.0-Taskmusters zurückgegeben wurde. Es gibt diesen JSON zurück ('JSON-Daten laden' @ http://jsonviewer.stack.hu/). [ { "id": "usajobs:353400300", "position_title": "Nurse", "organization_name": "Indian Health Service", "rate_interval_code": "PA", "minimum": 42492, "maximum": 61171, "start_date": "2013-10-01", "end_date": "2014-09-30", "locations": [ "Gallup, NM" ], "url": …

2
Der beste Weg, um eine auf Rückrufen basierende asynchrone Methode in eine erwartete Aufgabe zu konvertieren
Was wäre der beste Weg, um eine "klassische" asynchrone Methode zu konvertieren / zu verpacken, die einen Rückruf auf etwas verwendet, das eine (erwartete) Aufgabe zurückgibt? Zum Beispiel mit der folgenden Methode: public void GetStringFromUrl(string url, Action&lt;string&gt; onCompleted); Ich weiß nur, wie ich dies in eine Methode einbinden kann, die …


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.