IFuture Interface
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.
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 |
IsDone |
Retourne |
JniIdentityHashCode |
Retourne la valeur de |
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 |
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 |
SetJniManagedPeerState(JniManagedPeerStates) |
Représente |
SetPeerReference(JniObjectReference) |
Définissez la valeur retournée par |
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 |
GetJniTypeName(IJavaPeerable) |
Représente |
GetAsync(IFuture, Int64, TimeUnit) |
Représente |
GetAsync(IFuture) |
Représente |