RecursiveTask Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Un résultat ForkJoinTaskrécursif .
[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
- Héritage
- Attributs
Remarques
Un résultat ForkJoinTaskrécursif .
Par exemple, voici un programme basé sur des tâches pour l’informatique 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])));
}
}}
Ajouté dans la version 1.7.
Documentation Java pour java.util.concurrent.RecursiveTask.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Constructeurs
| Nom | Description |
|---|---|
| RecursiveTask() |
Constructeur pour les sous-classes à appeler. |
| RecursiveTask(IntPtr, JniHandleOwnership) |
Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime. |
Propriétés
| Nom | Description |
|---|---|
| Class |
Retourne la classe runtime de ce |
| Exception |
Retourne l’exception levée par le calcul de base, ou si |
| ForkJoinTaskTag |
Retourne la balise de cette tâche. (Hérité de ForkJoinTask) |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| IsCancelled |
Retourne |
| IsCompletedAbnormally |
Retourne |
| IsCompletedNormally |
Retourne |
| IsDone |
Retourne |
| JniIdentityHashCode |
Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité. (Hérité de Object) |
| JniManagedPeerState |
Un résultat |
| JniPeerMembers |
Un résultat |
| PeerReference |
Obtient la référence d’objet JNI pour cet homologue Java. (Hérité de Object) |
| RawRawResult |
Retourne le résultat qui serait retourné par Join(), même si cette tâche s’est terminée anormalement ou |
| ThresholdClass |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. |
| ThresholdType |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. |
Méthodes
| Nom | Description |
|---|---|
| Cancel(Boolean) |
Tente d’annuler l’exécution de cette tâche. (Hérité de ForkJoinTask) |
| Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
| CompareAndSetForkJoinTaskTag(Int16, Int16) |
Définit de manière conditionnelle la valeur de balise de cette tâche de manière atomique. (Hérité de ForkJoinTask) |
| Complete(Object) |
Termine cette tâche et, si elle n’est pas déjà abandonnée ou annulée, retourne la valeur donnée en raison des appels suivants d’opérations |
| CompleteExceptionally(Throwable) |
Termine cette tâche anormalement et, si elle n’est pas déjà abandonnée ou annulée, elle lève l’exception donnée sur |
| Compute() |
Calcul principal effectué par cette tâche. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Un résultat |
| Dispose() |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| Dispose(Boolean) |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| DisposeUnlessReferenced() |
Un résultat |
| Equals(Object) |
Un résultat |
| Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
| ExceptionNow() |
Un résultat |
| Exec() |
Implémente des conventions d’exécution pour RecursiveTask. |
| Fork() |
Organise l’exécution asynchrone de cette tâche dans le pool dans lequel la tâche actuelle s’exécute, le cas échéant, ou en utilisant le |
| Get() |
Attend si nécessaire que le calcul se termine, puis récupère son résultat. (Hérité de ForkJoinTask) |
| Get(Int64, TimeUnit) |
Attend si nécessaire pour que le calcul soit terminé au maximum, puis récupère son résultat, le cas échéant. (Hérité de ForkJoinTask) |
| GetHashCode() |
Retourne une valeur de code de hachage pour l'objet. (Hérité de Object) |
| Invoke() |
Commence à effectuer cette tâche, attend sa fin si nécessaire et retourne son résultat, ou lève une (décochée) |
| JavaFinalize() |
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
| Join() |
Retourne le résultat du calcul lorsqu’il #isDone est terminé. (Hérité de ForkJoinTask) |
| Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
| NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
| QuietlyComplete() |
Termine cette tâche normalement sans définir de valeur. (Hérité de ForkJoinTask) |
| QuietlyInvoke() |
Commence à effectuer cette tâche et attend sa fin si nécessaire, sans retourner son résultat ou lever son exception. (Hérité de ForkJoinTask) |
| QuietlyJoin() |
Joint cette tâche, sans retourner son résultat ou lever son exception. (Hérité de ForkJoinTask) |
| QuietlyJoin(Int64, TimeUnit) |
Tente de joindre cette tâche, en retournant true si elle s’est terminée (éventuellement exceptionnellement) avant le délai d’expiration donné et que le thread actuel n’a pas été interrompu. (Hérité de ForkJoinTask) |
| QuietlyJoinUninterruptibly(Int64, TimeUnit) |
Tente de joindre cette tâche, en retournant true si elle s’est terminée (éventuellement exceptionnellement) avant le délai d’expiration donné. (Hérité de ForkJoinTask) |
| Reinitialize() |
Réinitialise l’état interne de la comptabilité de cette tâche, ce qui permet d’obtenir un résultat ultérieur |
| ResultNow() |
Un résultat |
| SetForkJoinTaskTag(Int16) |
Définit atomiquement la valeur de balise pour cette tâche et retourne l’ancienne valeur. (Hérité de ForkJoinTask) |
| SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Un résultat |
| SetRawResult(Object) |
Force le retour de la valeur donnée en conséquence. (Hérité de ForkJoinTask) |
| State() |
Un résultat |
| ToArray<T>() |
Crée un tableau managé à partir de ce wrapper de tableau Java. (Hérité de Object) |
| ToString() |
Retourne une représentation de chaîne de l'objet. (Hérité de Object) |
| TryUnfork() |
Tente de déplanifier cette tâche pour l’exécution. (Hérité de ForkJoinTask) |
| UnregisterFromRuntime() |
Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité. (Hérité de Object) |
| Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<> (Hérité de Object) |
| Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IJavaPeerable.Disposed() |
Un résultat |
| IJavaPeerable.Finalized() |
Un résultat |
| IJavaPeerable.JniObjectReferenceControlBlock |
Un résultat |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un résultat |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un résultat |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Un résultat |
| IJavaPeerable.UnregisterFromRuntime() |
Un résultat |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
Un résultat |
| GetAsync(IFuture) |
Un résultat |
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Un résultat |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |