Condividi tramite


IFuture Interfaccia

Definizione

Un Future oggetto rappresenta il risultato di un calcolo asincrono.

[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
Derivato
Attributi
Implementazioni

Commenti

Un Future oggetto rappresenta il risultato di un calcolo asincrono. I metodi vengono forniti per verificare se il calcolo è completo, attendere il completamento e recuperare il risultato del calcolo. Il risultato può essere recuperato solo usando il metodo get quando il calcolo è stato completato, bloccando se necessario fino a quando non è pronto. L'annullamento cancel viene eseguito dal metodo . Vengono forniti metodi aggiuntivi per determinare se l'attività è stata completata normalmente o è stata annullata. Una volta completato un calcolo, il calcolo non può essere annullato. Se si desidera utilizzare un oggetto Future per motivi di annullamento, ma non fornire un risultato utilizzabile, è possibile dichiarare i tipi del modulo Future<?> e restituire null come risultato dell'attività sottostante.

<b>Esempio di utilizzo</b> (si noti che le classi seguenti sono tutte costituite).

{@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 è un'implementazione di Future che implementa Runnablee quindi può essere eseguita da un oggetto Executor. Ad esempio, la costruzione precedente con submit può essere sostituita da:

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

Effetti di coerenza della memoria: azioni eseguite dal calcolo <asincrono che si>verificano prima</i> azioni che seguono il corrispondente Future.get() in un altro thread.

Aggiunto nella versione 1.5.

Documentazione java per java.util.concurrent.Future.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Proprietà

Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
IsCancelled

Restituisce true se l'attività è stata annullata prima del completamento normale.

IsDone

Restituisce true se l'attività è stata completata.

JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto Java di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)

Metodi

Cancel(Boolean)

Tenta di annullare l'esecuzione di questa attività.

Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
Get()

Attende se necessario il completamento del calcolo e quindi recupera il risultato.

Get(Int64, TimeUnit)

Attende se necessario per il completamento del calcolo al massimo il tempo specificato e quindi recupera il risultato, se disponibile.

SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Un Future oggetto rappresenta il risultato di un calcolo asincrono.

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Un Future oggetto rappresenta il risultato di un calcolo asincrono.

GetJniTypeName(IJavaPeerable)

Un Future oggetto rappresenta il risultato di un calcolo asincrono.

GetAsync(IFuture, Int64, TimeUnit)

Un Future oggetto rappresenta il risultato di un calcolo asincrono.

GetAsync(IFuture)

Un Future oggetto rappresenta il risultato di un calcolo asincrono.

Si applica a