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>Penggunaan< Sampel/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 dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Properti

Nama Deskripsi
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 dibungkusJniObjectReference.

(Diperoleh dari IJavaPeerable)

Metode

Nama Deskripsi
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)
ExceptionNow()

Mengembalikan pengecualian yang dilemparkan oleh tugas, tanpa menunggu.

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.

InvokeState()

mewakili Future hasil komputasi asinkron.

ResultNow()

Mengembalikan hasil komputasi, tanpa menunggu.

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

Nama Deskripsi
GetAsync(IFuture, Int64, TimeUnit)

mewakili Future hasil komputasi asinkron.

GetAsync(IFuture)

mewakili Future hasil komputasi asinkron.

GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

mewakili Future hasil komputasi asinkron.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk