wie man eine Liste der Laufenden tasks .net 4.0
Ich versuche, eine Liste der aktuell Laufenden Aufgaben. Funktioniert der .net 4.0 Aufgaben-api für diese Funktionalität? Oder die einzige Möglichkeit ist explizit, um Aufgaben zu speichern in einer separaten Sammlung?
mögliche Duplikate von C# - abrufen der Liste der offenen Aufgaben
Ich meinte durch die TaskFactory-oder Aufgabenplaner-Objekte.
Warum würden Sie brauchen, und was meinst du mit "laufen"? Es können mehrere geplante tasks, die jederzeit, aber nur wenige von Ihnen zugewiesen werden, threads und ausgeführt. Sind Sie auf der Suche für die geplanten Aufgaben oder solche, die tatsächlich ausgeführt wird?
Ich meinte durch die TaskFactory-oder Aufgabenplaner-Objekte.
Warum würden Sie brauchen, und was meinst du mit "laufen"? Es können mehrere geplante tasks, die jederzeit, aber nur wenige von Ihnen zugewiesen werden, threads und ausgeführt. Sind Sie auf der Suche für die geplanten Aufgaben oder solche, die tatsächlich ausgeführt wird?
InformationsquelleAutor Markus | 2012-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie müssen Aufgabenplaner.GetScheduledTasks Methode, aber:
So, ich denke, Sie sollten versuchen, zu implementieren eigenen Aufgabenplaner Ihre Ziele zu erreichen.
eigenen Aufgabenplaner real-world-Beispiel ?
warum wollen Sie das tun? Außerdem gibt es eine Menge Beispiele bereits, darunter auch die Beispiele in der Dokumentation von Aufgabenplaner selbst. Wenn Sie ein Problem haben mit Ihrem code zwar, die Schaffung einer neuen Aufgabenplaner wird nur noch schlimmer machen
Ich verwende Aufgabenplanung in Windows, ich will get Status meiner Aufgaben
InformationsquelleAutor Rusted
Wenn Sie eine Aufgabe erstellen, die standardmäßig an dem der Vorgang zur Ausführung auf einem thread-pool thread. So können Sie Anzahl der ausgeführten tasks mit ThreadPool.GetMaxThreads und ThreadPool.GetAvailableThreads Methoden.
InformationsquelleAutor Unril
Warum würden Sie wollen, um die Liste der Laufenden tasks? Abgesehen von Debuggen, sollten Sie nicht haben, diese Informationen zu nutzen. In jedem Fall gibt es einen Unterschied zwischen der Liste der Aufgaben, die für die Ausführung geplant und die Aufgaben, die ausgeführt werden.
Als Verrostete schreibt, kann man die Anzahl der geplanten Aufgaben aus dem Aufgabenplaner.GetScheduledTasks Methode. Die Methode Abstrakt, so muss es umgesetzt werden, indem alle TaskSchedulers.
Wie viele Aufgaben tatsächlich ausführen hängt von der Aufgabenplaner Umsetzung. Die Standard-task-scheduler benutzt den threadpool, in dem Fall sollten Sie prüfen, ThreadPool.GetAvailableThreads und ThreadPool.GetMaxThreads Ungefähre Anzahl der ausgeführten Aufgaben.
Es gibt keine aktuelle Liste der Laufenden Aufgaben, auch wenn Sie die standardmäßigen Aufgabenplaner. Der scheduler im wesentlichen weist eine Aufgabe auf einem ThreadPool-und lässt die tatsächliche Ausführung der pool (eigentlich ruft es die Aufgabe.ExecuteEntry private Methode). Es hat keine Notwendigkeit, eine Liste der Laufenden tasks.
Möchten Sie die laufende task-Informationen für debugging-Zwecke, können Sie die Vorteile der Die Ereignisablaufverfolgung für Windows-Ereignisse in der TPL. Leider, wird die Aufgabe Gestartet und Beendet wurde-Ereignisse sind nicht dokumentiert. Ich habe Sie beim surfen auf der definition der Aufgabe.ExecuteEntry mit dotPeek.
Ich gefunden habe, ein Artikel die Erkundung der TPL Veranstaltungen aber ich bin nicht sicher, es ist die Mühe Wert. Es sei denn, Sie schreiben Sie Ihre eigenen debugger, es scheint zu viel Mühe.
Wenn Sie nur haben, um auf die Liste der ausgeführten Aufgaben, vielleicht sollten Sie schreiben Sie Ihre eigenen Aufgabenplaner und überschreiben TryExecute und TryExecuteInternal zum abfangen der Ausführung für jede Aufgabe und jede Aufgabe in eine Liste. Dies könnte teuer werden, obwohl, und Sie würden zu tun haben, etwas Aufräumen in regelmäßigen Abständen zu entfernen, alle abgeschlossenen Aufgaben aus der Liste ohne Verwendung von Fortsetzungen (die würde am Ende in der Liste selbst).
ein Grund mehr, das ist es nicht Wert. Warum tun Sie kümmern? Wenn Sie ein Problem haben, ist es fast sicher nicht im Zusammenhang mit der Liste der Ausführung oder geplante Aufgaben. Poste eine Frage die mit dem eigentlichen problem.
InformationsquelleAutor Panagiotis Kanavos
Gibt es einen guten Artikel auf der MSDN - http://msdn.microsoft.com/en-us/library/ms997649.aspx
Alles, was Sie brauchen, ist sehr gut beschrieben.
Bearbeiten:
perhabs hilft:
System.Threading.Task
.InformationsquelleAutor HW90