Langage

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.

Java documentation pour java.util.concurrent.Future.

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.

Propriétés

Nom Description
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)
JniObjectReferenceControlBlock

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

(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

Nom Description
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)
ExceptionNow()

Retourne l’exception levée par la tâche, sans attendre.

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.

InvokeState()

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

ResultNow()

Retourne le résultat calculé, sans attendre.

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

Nom Description
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.

GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

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.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à