ForkJoinTask Klasse

Definition

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

[Android.Runtime.Register("java/util/concurrent/ForkJoinTask", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public abstract class ForkJoinTask : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Util.Concurrent.IFuture
[<Android.Runtime.Register("java/util/concurrent/ForkJoinTask", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type ForkJoinTask = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IFuture
Vererbung
ForkJoinTask
Abgeleitet
Attribute
Implementiert

Hinweise

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden. A ForkJoinTask ist eine threadähnliche Entität, die viel weniger Gewicht hat als ein normaler Thread. Eine große Anzahl von Aufgaben und Untertasks kann von einer kleinen Anzahl tatsächlicher Threads in einem ForkJoinPool gehostet werden, zum Preis einiger Nutzungseinschränkungen.

Eine "Standard" ForkJoinTask beginnt mit der Ausführung, wenn sie explizit an eine ForkJoinPool- oder , falls nicht bereits an einer ForkJoin-Berechnung beteiligt ist, in der ForkJoinPool#commonPool() über #fork, #invokeoder verwandten Methoden begonnen wird. Nach dem Start werden in der Regel wiederum andere Teilaufgaben gestartet. Wie der Name dieser Klasse angibt, verwenden viele Programme, die ForkJoinTask nur Methoden #fork und #joinverwenden, oder Derivate wie #invokeAll(ForkJoinTask...) invokeAll. Diese Klasse bietet jedoch auch eine Reihe anderer Methoden, die bei erweiterten Verwendungen ins Spiel kommen können, sowie Erweiterungsmechaniken, die die Unterstützung neuer Formen der Fork-/Joinverarbeitung ermöglichen.

A ForkJoinTask ist eine einfache Form von Future. Die Effizienz von ForkJoinTasks ergibt sich aus einer Reihe von Einschränkungen (die nur teilweise statisch erzwingbar sind), die ihre Standard Verwendung als Rechenaufgaben zum Berechnen von reinen Funktionen oder zum Arbeiten an rein isolierten Objekten widerspiegeln. Die primären Koordinierungsmechanismen sind #fork, die die asynchrone Ausführung anordnen, und #join, die erst fortgesetzt wird, wenn das Ergebnis der Aufgabe berechnet wurde. Berechnungen sollten im Idealfall Methoden oder Blöcke vermeiden synchronized und andere blockierende Synchronisierungen außer dem Verknüpfen anderer Aufgaben oder der Verwendung von Synchronisierungen wie Phasern minimieren, die für die Zusammenarbeit mit der Fork-/Joinplanung angekündigt werden. Unterteilte Aufgaben sollten auch keine blockierenden E/A-Vorgänge ausführen und im Idealfall auf Variablen zugreifen, die völlig unabhängig von denen sind, auf die von anderen ausgeführten Aufgaben zugegriffen wird. Diese Richtlinien werden lose erzwungen, indem nicht zugelassen wird, dass überprüfte Ausnahmen wie IOExceptions ausgelöst werden. Bei Berechnungen treten jedoch möglicherweise weiterhin ungeprüfte Ausnahmen auf, die für Aufrufer, die versuchen, sie zu verbinden, erneut ausgeführt werden. Zu diesen Ausnahmen kann auch die Ausschöpfung interner Ressourcen gehören RejectedExecutionException , z. B. fehler beim Zuweisen interner Aufgabenwarteschlangen. Rethrown-Ausnahmen verhalten sich auf die gleiche Weise wie reguläre Ausnahmen, enthalten aber nach Möglichkeit Stapelablaufverfolgungen (wie z. B. mit ex.printStackTrace()) des Threads, der die Berechnung initiiert hat, sowie des Threads, der tatsächlich auf die Ausnahme stößt; minimal nur letzteres.

Es ist möglich, ForkJoinTasks zu definieren und zu verwenden, die möglicherweise blockieren, aber dies erfordert drei weitere Überlegungen: (1) Die Vervollständigung weniger, wenn andere<></em-Aufgaben> von einer Aufgabe abhängig sein sollten, die die externe Synchronisierung oder E/A blockiert. Asynchrone Aufgaben im Ereignisstil, die nie verknüpft sind (z. B. diese Unterklassen CountedCompleter), fallen häufig in diese Kategorie. (2) Um die Auswirkungen auf die Ressourcen zu minimieren, sollten die Aufgaben klein sein; idealerweise nur die (möglicherweise) blockierende Aktion ausführen. (3) Sofern die ForkJoinPool.ManagedBlocker API nicht verwendet wird oder die Anzahl der möglicherweise blockierten Aufgaben als kleiner als die ForkJoinPool#getParallelism Poolebene bekannt ist, kann der Pool nicht garantieren, dass genügend Threads verfügbar sind, um den Fortschritt oder eine gute Leistung sicherzustellen.

Die primäre Methode zum Warten auf den Abschluss und das Extrahieren der Ergebnisse eines Vorgangs ist #join, aber es gibt mehrere Varianten: Die Future#get Methoden unterstützen unterbrechbare und/oder zeitliche Wartezeiten auf die Vervollständigung und melden Ergebnisse mithilfe von Future Konventionen. Die Methode #invoke ist semantisch gleichwertig fork(); join() , versucht jedoch immer, mit der Ausführung im aktuellen Thread zu beginnen. Die "<em>quiet</em"->Formen dieser Methoden extrahieren keine Ergebnisse oder Berichtsausnahmen. Diese können nützlich sein, wenn eine Reihe von Aufgaben ausgeführt wird, und Sie müssen die Verarbeitung von Ergebnissen oder Ausnahmen verzögern, bis alle abgeschlossen sind. Die Methode invokeAll (in mehreren Versionen verfügbar) führt die am häufigsten verwendete Form des parallelen Aufrufs aus: Eine Reihe von Aufgaben zu forkingen und alle zusammenzufügen.

In den meisten typischen Verwendungen verhält sich ein Fork-Join-Paar wie ein Aufruf (Fork) und gibt (Join) von einer parallel rekursiven Funktion zurück. Wie bei anderen Formen rekursiver Aufrufe sollten Rückgaben (Joins) in erster Linie ausgeführt werden. a.fork(); b.fork(); b.join(); a.join(); Beispielsweise ist wahrscheinlich wesentlich effizienter als das Verknüpfen a vor b.

Die Ausführung status von Vorgängen kann auf mehreren Detailebenen abgefragt werden: #isDone ist true, wenn eine Aufgabe in irgendeiner Weise abgeschlossen wurde (einschließlich des Falles, in dem eine Aufgabe abgebrochen wurde, ohne auszuführen), #isCompletedNormally ist true, wenn eine Aufgabe ohne Abbruch abgeschlossen wurde oder eine Ausnahme auftritt; #isCancelled ist true, wenn der Vorgang abgebrochen wurde (in diesem Fall #getException gibt einen CancellationExceptionzurück) und #isCompletedAbnormally true ist, wenn eine Aufgabe entweder abgebrochen wurde oder eine Ausnahme aufgetreten ist. in diesem Fall #getException wird entweder die gefundene Ausnahme oder zurückgegebenCancellationException.

Die ForkJoinTask-Klasse wird normalerweise nicht direkt unterklassiert. Stattdessen unterklassen Sie eine der abstrakten Klassen, die einen bestimmten Stil der Fork-/Joinverarbeitung unterstützen, in der Regel RecursiveAction für die meisten Berechnungen, die keine Ergebnisse zurückgeben, für diejenigen, RecursiveTask die dies tun, und CountedCompleter für diejenigen, in denen abgeschlossene Aktionen andere Aktionen auslösen. Normalerweise deklariert eine konkrete ForkJoinTask-Unterklasse Felder, die ihre Parameter umfassen, die in einem Konstruktor eingerichtet sind, und definiert dann eine compute Methode, die irgendwie die von dieser Basisklasse bereitgestellten Steuerelementmethoden verwendet.

Methode #join und ihre Varianten eignen sich nur für die Verwendung, wenn Vervollständigungsabhängigkeiten acyclisch sind. Das heißt, die parallele Berechnung kann als gerichteter azyklischer Graph (DAG) beschrieben werden. Andernfalls können Ausführungen auf eine Art Deadlock stoßen, da Aufgaben zyklisch aufeinander warten. Dieses Framework unterstützt jedoch andere Methoden und Techniken (z. B. die Verwendung von Phaser, #helpQuiesceund #complete), die beim Erstellen benutzerdefinierter Unterklassen für Probleme von Nutzen sein können, die nicht statisch als DAGs strukturiert sind. Um solche Verwendungen zu unterstützen, kann ein ForkJoinTask atomar <em>tagged</em> mit einem short Wert mit #setForkJoinTaskTag oder #compareAndSetForkJoinTaskTag versehen und mit #getForkJoinTaskTagüberprüft werden. Die ForkJoinTask-Implementierung verwendet diese protected Methoden oder Tags nicht für irgendeinen Zweck, aber sie können bei der Konstruktion spezialisierter Unterklassen von Nutzen sein. Beispielsweise können parallele Graphdurchläufe die angegebenen Methoden verwenden, um zu vermeiden, dass bereits verarbeitete Knoten/Aufgaben erneut verwendet werden. (Methodennamen für das Tagging sind teilweise massenhaft, um die Definition von Methoden zu fördern, die ihre Nutzungsmuster widerspiegeln.)

Die meisten Basisunterstützungsmethoden sind final, um das Überschreiben von Implementierungen zu verhindern, die intrinsisch mit dem zugrunde liegenden Lightweight-Taskplanungsframework verknüpft sind. Entwickler, die neue grundlegende Stile der Fork-/Joinverarbeitung erstellen, sollten die Methoden #exec, und minimal implementieren protected und #getRawResultgleichzeitig eine abstrakte Berechnungsmethode einführen, die in ihren Unterklassen implementiert werden kann und möglicherweise auf anderen protected Von dieser Klasse bereitgestellten Methoden #setRawResultbasiert.

ForkJoinTasks sollte relativ kleine Berechnungen durchführen. Große Aufgaben sollten in kleinere Teilaufgaben unterteilt werden, in der Regel durch rekursive Zerlegung. Als grobe Faustregel sollte eine Aufgabe mehr als 100 und weniger als 10.000 grundlegende Rechenschritte ausführen und unbegrenzte Schleifen vermeiden. Wenn Aufgaben zu groß sind, kann Parallelität den Durchsatz nicht verbessern. Wenn sie zu klein ist, kann der Aufwand für die Arbeitsspeicher- und interne Aufgabenwartung die Verarbeitung überlasten.

Diese Klasse stellt Methoden für Runnable und Callablebereitadapt, die beim Mischen der Ausführung von ForkJoinTasks mit anderen Arten von Aufgaben hilfreich sein können. Wenn alle Aufgaben diese Form haben, sollten Sie einen Pool verwenden, der in <em>asyncMode</em> erstellt wurde.

ForkJoinTasks sind Serializable, sodass sie in Erweiterungen wie Remoteausführungsframeworks verwendet werden können. Es ist sinnvoll, Aufgaben nur vor oder nach der Ausführung, aber nicht während der Ausführung zu serialisieren. Die Serialisierung wird während der Ausführung selbst nicht verwendet.

In Version 1.7 hinzugefügt.

Java-Dokumentation für java.util.concurrent.ForkJoinTask.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

ForkJoinTask()

Konstruktor für zu aufrufende Unterklassen.

ForkJoinTask(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Exception

Gibt die Ausnahme zurück, die von der Basisberechnung ausgelöst wird, oder eine CancellationException , wenn sie abgebrochen wurde, oder null wenn keine oder die Methode noch nicht abgeschlossen wurde.

ForkJoinTaskTag

Gibt das Tag für diese Aufgabe zurück.

Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
IsCancelled

Gibt zurück true , wenn diese Aufgabe abgebrochen wurde, bevor sie normal abgeschlossen wurde.

IsCompletedAbnormally

Gibt zurück true , wenn diese Aufgabe eine Ausnahme ausgelöst oder abgebrochen wurde.

IsCompletedNormally

Gibt zurück true , wenn diese Aufgabe ohne Auslösen einer Ausnahme abgeschlossen und nicht abgebrochen wurde.

IsDone

Gibt zurück true , wenn diese Aufgabe abgeschlossen wurde.

JniIdentityHashCode

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
JniPeerMembers

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

PeerReference

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
Pool

Gibt den Pool zurück, der den aktuellen Thread hostt, oder null wenn der aktuelle Thread außerhalb eines ForkJoinPool ausgeführt wird.

QueuedTaskCount

Gibt eine Schätzung der Anzahl von Aufgaben zurück, die vom aktuellen Workerthread gespalten, aber noch nicht ausgeführt wurden.

RawRawResult

Gibt das Ergebnis zurück, das von Join()zurückgegeben wird, auch wenn diese Aufgabe nicht ordnungsgemäß abgeschlossen wurde oder null wenn nicht bekannt ist, dass diese Aufgabe abgeschlossen wurde.

SurplusQueuedTaskCount

Gibt eine Schätzung zurück, wie viele weitere lokal in die Warteschlange eingereihte Aufgaben vom aktuellen Workerthread gehalten werden, als es andere Workerthreads gibt, die sie stehlen könnten, oder null, wenn dieser Thread nicht in einem ForkJoinPool ausgeführt wird.

ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

Adapt(ICallable)

Gibt ein neues ForkJoinTask zurück, das die call -Methode des angegebenen Callable als seine Aktion ausführt, und gibt sein Ergebnis zurück, indem #joinalle überprüften Ausnahmen, die gefunden wurden, in RuntimeExceptionübersetzt werden.

Adapt(IRunnable)

Gibt ein neues ForkJoinTask zurück, das die run -Methode des angegebenen Runnable als -Aktion ausführt, und gibt ein NULL-Ergebnis für zurück #join.

Adapt(IRunnable, Object)

Gibt ein neues ForkJoinTask zurück, das die run -Methode des angegebenen Runnable als seine Aktion ausführt, und gibt das angegebene Ergebnis für zurück #join.

Cancel(Boolean)

Versucht, die Ausführung dieser Aufgabe abzubrechen.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
CompareAndSetForkJoinTaskTag(Int16, Int16)

Legt den Tagwert für diese Aufgabe atomar bedingt fest.

Complete(Object)

Schließt diese Aufgabe ab, und wenn nicht bereits abgebrochen oder abgebrochen, wird der angegebene Wert als Ergebnis nachfolgender Aufrufe von join und verwandten Vorgängen zurückgegeben.

CompleteExceptionally(Throwable)

Führt diese Aufgabe ungewöhnlich aus, und wenn sie nicht bereits abgebrochen oder abgebrochen wurde, führt sie dazu, dass die angegebene Ausnahme für join und verwandte Vorgänge ausgelöst wird.

Dispose()

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
Dispose(Boolean)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
Equals(Object)

Gibt an, ob ein anderes Objekt diesem "gleich" ist.

(Geerbt von Object)
Exec()

Führt sofort die Basisaktion dieser Aufgabe aus und gibt true zurück, wenn bei der Rückgabe von dieser Methode garantiert ist, dass diese Aufgabe abgeschlossen ist.

Fork()

Arrangiert, um diese Aufgabe asynchron im Pool auszuführen, in dem der aktuelle Task ausgeführt wird, falls zutreffend, oder verwendet, ForkJoinPool#commonPool() wenn nicht #inForkJoinPool.

Get()

Wartet bei Bedarf, bis die Berechnung abgeschlossen ist, und ruft dann das Ergebnis ab.

Get(Int64, TimeUnit)

Wartet bei Bedarf bis maximal die angegebene Zeit, bis die Berechnung abgeschlossen ist, und ruft dann das Ergebnis ab, falls verfügbar.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
HelpQuiesce()

Möglicherweise werden Aufgaben ausgeführt, bis der Pool, der die aktuelle Aufgabe ForkJoinPool#isQuiescent hostet, ruhen kann.

InForkJoinPool()

Gibt zurück true , wenn der aktuelle Thread als ForkJoinWorkerThread ForkJoinPool-Berechnung ausgeführt wird.

Invoke()

Beginnt mit der Ausführung dieser Aufgabe, wartet bei Bedarf auf dessen Abschluss und gibt das Ergebnis zurück, oder löst ein (ungeprüft) RuntimeException aus oder Error wenn die zugrunde liegende Berechnung dies getan hat.

InvokeAll(ForkJoinTask, ForkJoinTask)

Forks für die angegebenen Aufgaben, die zurückgegeben werden, wenn isDone für jede Aufgabe oder eine (nicht aktivierte) Ausnahme gefunden wird, in diesem Fall wird die Ausnahme erneut ausgeführt.

InvokeAll(ForkJoinTask[])

Gibt alle Aufgaben in der angegebenen Auflistung ab, und gibt zurück, wenn isDone für jeden Vorgang haltet oder eine (nicht aktivierte) Ausnahme gefunden wird. In diesem Fall wird die Ausnahme erneut ausgeführt.

InvokeAll(ICollection)

Gibt alle Aufgaben in der angegebenen Auflistung ab, und gibt zurück, wenn isDone für jeden Vorgang haltet oder eine (nicht aktivierte) Ausnahme gefunden wird. In diesem Fall wird die Ausnahme erneut ausgeführt.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
Join()

Gibt das Ergebnis der Berechnung zurück, wenn #isDone abgeschlossen ist.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
PeekNextLocalTask()

Gibt eine Aufgabe zurück, die vom aktuellen Thread in die Warteschlange gestellt, aber noch nicht ausgeführt wird, wenn sie sofort verfügbar ist.

PollNextLocalTask()

Entplant und gibt die nächste Aufgabe, die vom aktuellen Thread in die Warteschlange gestellt, aber noch nicht ausgeführt wird, ohne auszuführen, zurück, wenn der aktuelle Thread in einem ForkJoinPool ausgeführt wird.

PollTask()

Wenn der aktuelle Thread in einem ForkJoinPool ausgeführt wird, wird die nächste Aufgabe, die vom aktuellen Thread in die Warteschlange gestellt, aber noch nicht ausgeführt wird, nicht geplant und zurückgegeben, wenn eine aufgabe verfügbar ist, oder, falls nicht verfügbar, eine Aufgabe, die von einem anderen Thread gezweigt wurde, falls verfügbar.

QuietlyComplete()

Schließt diese Aufgabe normal ab, ohne einen Wert festzulegen.

QuietlyInvoke()

Beginnt mit der Ausführung dieser Aufgabe und wartet bei Bedarf auf dessen Abschluss, ohne das Ergebnis zurückzugeben oder die Ausnahme auszulösen.

QuietlyJoin()

Verknüpft diese Aufgabe, ohne dass das Ergebnis zurückgegeben oder die Ausnahme ausgelöst wird.

Reinitialize()

Setzt den internen Buchhaltungsstatus dieser Aufgabe zurück, sodass ein nachfolgendes forkzulässt.

SetForkJoinTaskTag(Int16)

Legt atomar den Tagwert für diese Aufgabe fest und gibt den alten Wert zurück.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetRawResult(Object)

Erzwingt, dass der angegebene Wert als Ergebnis zurückgegeben wird.

ToArray<T>()

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
TryUnfork()

Versucht, diesen Task für die Ausführung auf den Plan zu stellen.

UnregisterFromRuntime()

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
IJavaPeerable.Finalized()

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

GetJniTypeName(IJavaPeerable)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

GetAsync(IFuture)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

GetAsync(IFuture, Int64, TimeUnit)

Abstrakte Basisklasse für Aufgaben, die in einem ForkJoinPoolausgeführt werden.

Gilt für: