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 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 |
| 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 |