Freigeben über


RecursiveTask Klasse

Definition

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
RecursiveTask
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 Objectzurück.

(Geerbt von Object)
Exception

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

(Geerbt von ForkJoinTask)
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 true , wenn dieser Task abgebrochen wurde, bevor er normal abgeschlossen wurde.

(Geerbt von ForkJoinTask)
IsCompletedAbnormally

Gibt zurück true , wenn dieser Task eine Ausnahme ausgelöst hat oder abgebrochen wurde.

(Geerbt von ForkJoinTask)
IsCompletedNormally

Gibt zurück true , wenn diese Aufgabe abgeschlossen wurde, ohne eine Ausnahme ausgelöst zu haben und nicht abgebrochen wurde.

(Geerbt von ForkJoinTask)
IsDone

Gibt zurück true , wenn dieser Task abgeschlossen wurde.

(Geerbt von ForkJoinTask)
JniIdentityHashCode

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
JniPeerMembers

Ein rekursiver ergebnisführender ForkJoinTask.

PeerReference

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
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.

(Geerbt von ForkJoinTask)
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 join und verwandten Vorgängen zurück, wenn sie nicht bereits abgebrochen oder abgebrochen wurde.

(Geerbt von ForkJoinTask)
CompleteExceptionally(Throwable)

Führt diesen Task anormal aus. Wenn er nicht bereits abgebrochen oder abgebrochen wurde, löst er die angegebene Ausnahme für join und verwandte Vorgänge aus.

(Geerbt von ForkJoinTask)
Compute()

Die Standard Berechnung, die von dieser Aufgabe ausgeführt wird.

Dispose()

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
Dispose(Boolean)

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
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, ForkJoinPool#commonPool() wenn nicht #inForkJoinPool.

(Geerbt von ForkJoinTask)
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) RuntimeException aus oder Error wenn die zugrunde liegende Berechnung dies getan hat.

(Geerbt von ForkJoinTask)
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 forkzulässt.

(Geerbt von ForkJoinTask)
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 ForkJoinTask.

(Geerbt von Object)
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 ForkJoinTask.

(Geerbt von Object)
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 ForkJoinTask.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein rekursiver ergebnisführender ForkJoinTask.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Typkonvertierung mit Überprüfung der Android-Laufzeit aus.

JavaCast<TResult>(IJavaObject)

Ein rekursiver ergebnisführender ForkJoinTask.

GetJniTypeName(IJavaPeerable)

Ein rekursiver ergebnisführender ForkJoinTask.

GetAsync(IFuture)

Ein rekursiver ergebnisführender ForkJoinTask.

GetAsync(IFuture, Int64, TimeUnit)

Ein rekursiver ergebnisführender ForkJoinTask.

Gilt für: