RecursiveTask Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein rekursiver ergebnisführender ForkJoinTask
.
[Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public abstract class RecursiveTask : Java.Util.Concurrent.ForkJoinTask
[<Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type RecursiveTask = class
inherit ForkJoinTask
- Vererbung
- Attribute
Hinweise
Ein rekursiver ergebnisführender ForkJoinTask
.
Für ein klassisches Beispiel finden Sie hier eine Aufgabe, die Fibonacci-Zahlen berechnen:
{@code
class Fibonacci extends RecursiveTask<Integer> {
final int n;
Fibonacci(int n) { this.n = n; }
protected Integer compute() {
if (n <= 1)
return n;
Fibonacci f1 = new Fibonacci(n - 1);
f1.fork();
Fibonacci f2 = new Fibonacci(n - 2);
return f2.compute() + f1.join();
}
}}
Dies ist jedoch nicht nur eine dumme Möglichkeit, Fibonacci-Funktionen zu berechnen (es gibt einen einfachen schnellen linearen Algorithmus, den Sie in der Praxis verwenden würden), aber dies ist wahrscheinlich schlecht, da die kleinsten Teilvorgänge zu klein sind, um eine Aufteilung zu lohnen. Stattdessen, wie bei fast allen Fork-/Join-Anwendungen, würden Sie eine minimale Granularitätsgröße (z. B. 10 hier) auswählen, für die Sie immer sequenziell lösen, anstatt zu unterteilen.
In Version 1.7 hinzugefügt.
Java-Dokumentation für java.util.concurrent.RecursiveTask
.
Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
RecursiveTask() |
Konstruktor für aufzurufende Unterklassen. |
RecursiveTask(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 |
Exception |
Gibt die Ausnahme zurück, die von der Basisberechnung ausgelöst wird, oder eine |
ForkJoinTaskTag |
Gibt das Tag für diese Aufgabe zurück. (Geerbt von ForkJoinTask) |
Handle |
Das Handle für die zugrunde liegende Android-instance. (Geerbt von Object) |
IsCancelled |
Gibt zurück |
IsCompletedAbnormally |
Gibt zurück |
IsCompletedNormally |
Gibt zurück |
IsDone |
Gibt zurück |
JniIdentityHashCode |
Ein rekursiver ergebnisführender |
JniPeerMembers |
Ein rekursiver ergebnisführender |
PeerReference |
Ein rekursiver ergebnisführender |
RawRawResult |
Gibt das Ergebnis zurück, das von Join()zurückgegeben wird, auch wenn diese Aufgabe nicht ordnungsgemäß abgeschlossen wurde oder |
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
Cancel(Boolean) |
Versucht, die Ausführung dieser Aufgabe abzubrechen. (Geerbt von ForkJoinTask) |
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. (Geerbt von ForkJoinTask) |
Complete(Object) |
Schließt diese Aufgabe ab und gibt den angegebenen Wert als Ergebnis nachfolgender Aufrufe von |
CompleteExceptionally(Throwable) |
Führt diesen Task anormal aus. Wenn er nicht bereits abgebrochen oder abgebrochen wurde, löst er die angegebene Ausnahme für |
Compute() |
Die Standard Berechnung, die von dieser Aufgabe ausgeführt wird. |
Dispose() |
Ein rekursiver ergebnisführender |
Dispose(Boolean) |
Ein rekursiver ergebnisführender |
Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem objekt ist. (Geerbt von Object) |
Exec() |
Implementiert Ausführungskonventionen für RecursiveTask. |
Fork() |
Ordnet an, diese Aufgabe asynchron im Pool auszuführen, in dem die aktuelle Aufgabe ausgeführt wird, falls zutreffend, oder verwendet, |
Get() |
Wartet bei Bedarf, bis die Berechnung abgeschlossen ist, und ruft dann das Ergebnis ab. (Geerbt von ForkJoinTask) |
Get(Int64, TimeUnit) |
Wartet bei Bedarf höchstens den angegebenen Zeitpunkt, bis die Berechnung abgeschlossen ist, und ruft dann das Ergebnis ab, falls verfügbar. (Geerbt von ForkJoinTask) |
GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
Invoke() |
Beginnt mit der Ausführung dieser Aufgabe, wartet bei Bedarf auf dessen Abschluss und gibt das Ergebnis zurück, oder löst eine (ungeprüfte) |
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. (Geerbt von ForkJoinTask) |
Notify() |
Aktiviert einen einzelnen Thread, der auf den Monitor dieses Objekts wartet. (Geerbt von Object) |
NotifyAll() |
Aktiviert alle Threads, die auf den Monitor dieses Objekts warten. (Geerbt von Object) |
QuietlyComplete() |
Schließt diese Aufgabe normal ab, ohne einen Wert festzulegen. (Geerbt von ForkJoinTask) |
QuietlyInvoke() |
Beginnt mit der Ausführung dieser Aufgabe und wartet bei Bedarf auf dessen Abschluss, ohne dass das Ergebnis zurückgegeben oder die Ausnahme ausgelöst wird. (Geerbt von ForkJoinTask) |
QuietlyJoin() |
Verknüpft diese Aufgabe, ohne das Ergebnis zurückzugeben oder die Ausnahme zu lösen. (Geerbt von ForkJoinTask) |
Reinitialize() |
Setzt den internen Buchhaltungszustand dieser Aufgabe zurück, sodass ein nachfolgendes |
SetForkJoinTaskTag(Int16) |
Legt den Tagwert für diese Aufgabe atomar fest und gibt den alten Wert zurück. (Geerbt von ForkJoinTask) |
SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
SetRawResult(Object) |
Erzwingt, dass der angegebene Wert als Ergebnis zurückgegeben wird. (Geerbt von ForkJoinTask) |
ToArray<T>() |
Ein rekursiver ergebnisführender |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
TryUnfork() |
Versucht, den Zeitplan für diese Aufgabe für die Ausführung aufzuhalten. (Geerbt von ForkJoinTask) |
UnregisterFromRuntime() |
Ein rekursiver ergebnisführender |
Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch <>Benachrichtigung</em> oder <em>interrupted</em>. (Geerbt von Object) |
Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch>< Benachrichtigung</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 ist, in der Regel durch>< Benachrichtigung</em> oder <em>interrupted</em>, oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IJavaPeerable.Disposed() |
Ein rekursiver ergebnisführender |
IJavaPeerable.DisposeUnlessReferenced() |
Ein rekursiver ergebnisführender |
IJavaPeerable.Finalized() |
Ein rekursiver ergebnisführender |
IJavaPeerable.JniManagedPeerState |
Ein rekursiver ergebnisführender |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein rekursiver ergebnisführender |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein rekursiver ergebnisführender |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein rekursiver ergebnisführender |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine Typkonvertierung mit Überprüfung der Android-Laufzeit aus. |
JavaCast<TResult>(IJavaObject) |
Ein rekursiver ergebnisführender |
GetJniTypeName(IJavaPeerable) |
Ein rekursiver ergebnisführender |
GetAsync(IFuture) |
Ein rekursiver ergebnisführender |
GetAsync(IFuture, Int64, TimeUnit) |
Ein rekursiver ergebnisführender |