IFuture Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
mewakili Future hasil komputasi asinkron.
[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
- Turunan
- Atribut
- Penerapan
Keterangan
mewakili Future hasil komputasi asinkron. Metode disediakan untuk memeriksa apakah komputasi selesai, untuk menunggu penyelesaiannya, dan untuk mengambil hasil komputasi. Hasilnya hanya dapat diambil menggunakan metode get ketika komputasi telah selesai, memblokir jika perlu sampai siap. Pembatalan dilakukan dengan cancel metode . Metode tambahan disediakan untuk menentukan apakah tugas selesai secara normal atau dibatalkan. Setelah komputasi selesai, komputasi tidak dapat dibatalkan. Jika Anda ingin menggunakan Future demi pembatalan tetapi tidak memberikan hasil yang dapat digunakan, Anda dapat mendeklarasikan jenis formulir Future<?> dan mengembalikan null sebagai hasil dari tugas yang mendasar.
<b>Contoh Penggunaan</b> (Perhatikan bahwa semua kelas berikut dibuat-buat.)
{@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; }
}
}}
Kelas FutureTask adalah implementasi Future yang mengimplementasikan Runnable, sehingga dapat dijalankan oleh Executor. Misalnya, konstruksi di atas dengan submit dapat diganti dengan:
{@code
FutureTask<String> future = new FutureTask<>(task);
executor.execute(future);}
Efek konsistensi memori: Tindakan yang diambil oleh tindakan komputasi <asinkron i>terjadi sebelum</i> mengikuti yang sesuai Future.get() di utas lain.
Ditambahkan dalam 1.5.
Dokumentasi Java untuk java.util.concurrent.Future.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Properti
| Handle |
Mendapatkan nilai JNI dari objek Android yang mendasar. (Diperoleh dari IJavaObject) |
| IsCancelled |
Mengembalikan |
| IsDone |
Mengembalikan |
| JniIdentityHashCode |
Mengembalikan nilai |
| JniManagedPeerState |
Status serekan terkelola. (Diperoleh dari IJavaPeerable) |
| JniPeerMembers |
Akses anggota dan dukungan pemanggilan. (Diperoleh dari IJavaPeerable) |
| PeerReference |
Mengembalikan instans objek Java yang dibungkus JniObjectReference . (Diperoleh dari IJavaPeerable) |
Metode
| Cancel(Boolean) |
Mencoba membatalkan eksekusi tugas ini. |
| Disposed() |
Dipanggil ketika instans telah dibuang. (Diperoleh dari IJavaPeerable) |
| DisposeUnlessReferenced() |
Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan |
| Finalized() |
Dipanggil ketika instans telah diselesaikan. (Diperoleh dari IJavaPeerable) |
| Get() |
Menunggu jika perlu untuk menyelesaikan komputasi, lalu mengambil hasilnya. |
| Get(Int64, TimeUnit) |
Menunggu jika perlu untuk sebagian besar waktu yang diberikan agar komputasi selesai, lalu mengambil hasilnya, jika tersedia. |
| SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
| SetJniManagedPeerState(JniManagedPeerStates) |
mewakili |
| SetPeerReference(JniObjectReference) |
Atur nilai yang dikembalikan oleh |
| UnregisterFromRuntime() |
Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue . (Diperoleh dari IJavaPeerable) |
Metode Ekstensi
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android. |
| JavaCast<TResult>(IJavaObject) |
mewakili |
| GetJniTypeName(IJavaPeerable) |
mewakili |
| GetAsync(IFuture, Int64, TimeUnit) |
mewakili |
| GetAsync(IFuture) |
mewakili |