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.
Rekursives Ergebnislager 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
Rekursives Ergebnislager ForkJoinTask.
Hier ist beispielsweise ein aufgabenbasiertes Programm für die Berechnung von Factorials:
{@code
import java.util.concurrent.RecursiveTask;
import java.math.BigInteger;
public class Factorial {
static class FactorialTask extends RecursiveTask<BigInteger> {
private final int from, to;
FactorialTask(int from, int to) { this.from = from; this.to = to; }
protected BigInteger compute() {
int range = to - from;
if (range == 0) { // base case
return BigInteger.valueOf(from);
} else if (range == 1) { // too small to parallelize
return BigInteger.valueOf(from).multiply(BigInteger.valueOf(to));
} else { // split in half
int mid = from + range / 2;
FactorialTask leftTask = new FactorialTask(from, mid);
leftTask.fork(); // perform about half the work locally
return new FactorialTask(mid + 1, to).compute()
.multiply(leftTask.join());
}
}
}
static BigInteger factorial(int n) { // uses ForkJoinPool.commonPool()
return (n <= 1) ? BigInteger.ONE : new FactorialTask(1, n).invoke();
}
public static void main(String[] args) {
System.out.println(factorial(Integer.parseInt(args[0])));
}
}}
In 1.7 hinzugefügt.
Java Dokumentation für java.util.concurrent.RecursiveTask.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| RecursiveTask() |
Konstruktor für Unterklassen, die aufgerufen werden sollen. |
| RecursiveTask(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Exception |
Gibt die Ausnahme zurück, die von der Basisberechnung ausgelöst wird, oder wenn |
| ForkJoinTaskTag |
Gibt das Tag für diesen Vorgang zurück. (Geerbt von ForkJoinTask) |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| IsCancelled |
Gibt zurück |
| IsCompletedAbnormally |
Gibt zurück |
| IsCompletedNormally |
Gibt zurück |
| IsDone |
Gibt zurück |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Rekursives Ergebnislager |
| JniPeerMembers |
Rekursives Ergebnislager |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| RawRawResult |
Gibt das Ergebnis zurück, das von Join(), auch wenn diese Aufgabe nicht ungewöhnlich 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
| Name | Beschreibung |
|---|---|
| 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) |
Atomar bedingt legt den Tagwert für diese Aufgabe fest. (Geerbt von ForkJoinTask) |
| Complete(Object) |
Führt diese Aufgabe aus, und wenn sie nicht bereits abgebrochen oder abgebrochen wurde, wird der angegebene Wert als Ergebnis nachfolgender Aufrufe |
| CompleteExceptionally(Throwable) |
Führt diese Aufgabe nicht ungewöhnlich aus, und wenn sie nicht bereits abgebrochen oder abgebrochen wurde, löst sie die gegebene Ausnahme auf |
| Compute() |
Die Hauptberechnung, die von dieser Aufgabe ausgeführt wird. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Rekursives Ergebnislager |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
Rekursives Ergebnislager |
| Equals(Object) |
Rekursives Ergebnislager |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| ExceptionNow() |
Rekursives Ergebnislager |
| Exec() |
Implementiert Ausführungskonventionen für RecursiveTask. |
| Fork() |
Ordnet die asynchrone Ausführung dieser Aufgabe im Pool an, in der die aktuelle Aufgabe ausgeführt wird( falls zutreffend) oder wenn |
| Get() |
Wartet, falls erforderlich, bis die Berechnung abgeschlossen ist, und ruft dann das Ergebnis ab. (Geerbt von ForkJoinTask) |
| Get(Int64, TimeUnit) |
Wartet, falls erforderlich, bis die Berechnung abgeschlossen ist, 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 dieses Vorgangs, wartet bei Bedarf auf seinen Abschluss und gibt sein Ergebnis zurück oder löst eine (nicht überprüfte) |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise 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 dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| QuietlyComplete() |
Schließt diesen Vorgang normal ab, ohne einen Wert festzulegen. (Geerbt von ForkJoinTask) |
| QuietlyInvoke() |
Beginnt mit der Durchführung dieser Aufgabe und wartet bei Bedarf auf den 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 auslösen. (Geerbt von ForkJoinTask) |
| QuietlyJoin(Int64, TimeUnit) |
Versucht, diese Aufgabe zu verbinden, und gibt "true" zurück, wenn sie vor dem angegebenen Timeout (möglicherweise ausnahmsweise) abgeschlossen wurde und der aktuelle Thread nicht unterbrochen wurde. (Geerbt von ForkJoinTask) |
| QuietlyJoinUninterruptibly(Int64, TimeUnit) |
Versucht, diese Aufgabe zu verbinden, und gibt "true" zurück, wenn sie vor dem angegebenen Timeout abgeschlossen wurde (möglicherweise ausnahmsweise). (Geerbt von ForkJoinTask) |
| Reinitialize() |
Setzt den internen Buchführungszustand dieser Aufgabe zurück, sodass eine nachfolgende |
| ResultNow() |
Rekursives Ergebnislager |
| SetForkJoinTaskTag(Int16) |
Atomar legt den Tagwert für diesen Vorgang fest und gibt den alten Wert zurück. (Geerbt von ForkJoinTask) |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Rekursives Ergebnislager |
| SetRawResult(Object) |
Erzwingt, dass der angegebene Wert als Ergebnis zurückgegeben wird. (Geerbt von ForkJoinTask) |
| State() |
Rekursives Ergebnislager |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| TryUnfork() |
Versucht, diese Aufgabe für die Ausführung zu entplanen. (Geerbt von ForkJoinTask) |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
Rekursives Ergebnislager |
| IJavaPeerable.Finalized() |
Rekursives Ergebnislager |
| IJavaPeerable.JniObjectReferenceControlBlock |
Rekursives Ergebnislager |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Rekursives Ergebnislager |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Rekursives Ergebnislager |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Rekursives Ergebnislager |
| IJavaPeerable.UnregisterFromRuntime() |
Rekursives Ergebnislager |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
Rekursives Ergebnislager |
| GetAsync(IFuture) |
Rekursives Ergebnislager |
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Rekursives Ergebnislager |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |