Bagikan melalui


IFuture Antarmuka

Definisi

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 true jika tugas ini dibatalkan sebelum selesai secara normal.

IsDone

Mengembalikan true jika tugas ini selesai.

JniIdentityHashCode

Mengembalikan nilai java.lang.System.identityHashCode() untuk instans yang dibungkus.

(Diperoleh dari IJavaPeerable)
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 Dispose(); jika tidak, tidak melakukan apa pun.

(Diperoleh dari IJavaPeerable)
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 JniIdentityHashCode.

(Diperoleh dari IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

mewakili Future hasil komputasi asinkron.

(Diperoleh dari IJavaPeerable)
SetPeerReference(JniObjectReference)

Atur nilai yang dikembalikan oleh PeerReference.

(Diperoleh dari IJavaPeerable)
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 Future hasil komputasi asinkron.

GetJniTypeName(IJavaPeerable)

mewakili Future hasil komputasi asinkron.

GetAsync(IFuture, Int64, TimeUnit)

mewakili Future hasil komputasi asinkron.

GetAsync(IFuture)

mewakili Future hasil komputasi asinkron.

Berlaku untuk