IFuture Interface

Définition

Représente Future le résultat d’un calcul asynchrone.

[Android.Runtime.Register("java/util/concurrent/Future", "", "Java.Util.Concurrent.IFutureInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public interface IFuture : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/Future", "", "Java.Util.Concurrent.IFutureInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type IFuture = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Dérivé
Attributs
Implémente

Remarques

Représente Future le résultat d’un calcul asynchrone. Les méthodes sont fournies pour vérifier si le calcul est terminé, attendre sa fin et récupérer le résultat du calcul. Le résultat ne peut être récupéré qu’à l’aide de la méthode get lorsque le calcul est terminé, bloquant si nécessaire jusqu’à ce qu’il soit prêt. L’annulation est effectuée par la cancel méthode. Des méthodes supplémentaires sont fournies pour déterminer si la tâche s’est terminée normalement ou a été annulée. Une fois qu’un calcul est terminé, le calcul ne peut pas être annulé. Si vous souhaitez utiliser une Future option pour l’annulation, mais que vous ne fournissez pas de résultat utilisable, vous pouvez déclarer des types de formulaire Future<?> et retourner null à la suite de la tâche sous-jacente.

<b>Exemple d’utilisation</b> (Notez que les classes suivantes sont toutes composées.)

{@code
            interface ArchiveSearcher { String search(String target); }
            class App {
              ExecutorService executor = ...;
              ArchiveSearcher searcher = ...;
              void showSearch(String target) throws InterruptedException {
                Callable<String> task = () -> searcher.search(target);
                Future<String> future = executor.submit(task);
                displayOtherThings(); // do other things while searching
                try {
                  displayText(future.get()); // use future
                } catch (ExecutionException ex) { cleanup(); return; }
              }
            }}

La FutureTask classe est une implémentation de Future ce qui implémente Runnable, et peut donc être exécutée par un Executor. Par exemple, la construction submit ci-dessus peut être remplacée par :

{@code
            FutureTask<String> future = new FutureTask<>(task);
            executor.execute(future);}

Effets de cohérence de la mémoire : actions effectuées par le calcul <asynchrone i>happen-before</i> actions suivant la correspondance Future.get() dans un autre thread.

Ajouté à la version 1.5.

Documentation Java pour java.util.concurrent.Future.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Propriétés

Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
IsCancelled

Retourne true si cette tâche a été annulée avant qu’elle ne soit terminée normalement.

IsDone

Retourne true si cette tâche s’est terminée.

JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Cancel(Boolean)

Tente d’annuler l’exécution de cette tâche.

Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
Get()

Attend si nécessaire que le calcul se termine, puis récupère son résultat.

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.

SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Représente Future le résultat d’un calcul asynchrone.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Représente Future le résultat d’un calcul asynchrone.

GetJniTypeName(IJavaPeerable)

Représente Future le résultat d’un calcul asynchrone.

GetAsync(IFuture, Int64, TimeUnit)

Représente Future le résultat d’un calcul asynchrone.

GetAsync(IFuture)

Représente Future le résultat d’un calcul asynchrone.

S’applique à