IFuture Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 Runnable
e 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 |
IsDone |
Restituisce |
JniIdentityHashCode |
Restituisce il valore di |
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 |
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 |
SetJniManagedPeerState(JniManagedPeerStates) |
Un |
SetPeerReference(JniObjectReference) |
Impostare il valore restituito da |
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 |
GetJniTypeName(IJavaPeerable) |
Un |
GetAsync(IFuture, Int64, TimeUnit) |
Un |
GetAsync(IFuture) |
Un |