Язык

RecursiveTask Класс

Определение

Рекурсивный результат.ForkJoinTask

[Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public abstract class RecursiveTask : Java.Util.Concurrent.ForkJoinTask
[<Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type RecursiveTask = class
    inherit ForkJoinTask
Наследование
Атрибуты

Комментарии

Рекурсивный результат.ForkJoinTask

Например, ниже приведена программа на основе задач для вычислений Factorials:

{@code
            import java.util.concurrent.RecursiveTask;
            import java.math.BigInteger;
            public class Factorial {
              static class FactorialTask extends RecursiveTask<BigInteger> {
                private final int from, to;
                FactorialTask(int from, int to) { this.from = from; this.to = to; }
                protected BigInteger compute() {
                  int range = to - from;
                  if (range == 0) {                       // base case
                    return BigInteger.valueOf(from);
                  } else if (range == 1) {                // too small to parallelize
                    return BigInteger.valueOf(from).multiply(BigInteger.valueOf(to));
                  } else {                                // split in half
                    int mid = from + range / 2;
                    FactorialTask leftTask = new FactorialTask(from, mid);
                    leftTask.fork();         // perform about half the work locally
                    return new FactorialTask(mid + 1, to).compute()
                           .multiply(leftTask.join());
                  }
                }
              }
              static BigInteger factorial(int n) { // uses ForkJoinPool.commonPool()
                return (n <= 1) ? BigInteger.ONE : new FactorialTask(1, n).invoke();
              }
              public static void main(String[] args) {
                System.out.println(factorial(Integer.parseInt(args[0])));
              }
            }}

Добавлено в версии 1.7.

Java документации по java.util.concurrent.RecursiveTask.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
RecursiveTask()

Конструктор для вызываемого подкласса.

RecursiveTask(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Exception

Возвращает исключение, вызываемое базовым вычислением, или если оно отменено, или CancellationExceptionnull если метод еще не завершен.

(Унаследовано от ForkJoinTask)
ForkJoinTaskTag

Возвращает тег для этой задачи.

(Унаследовано от ForkJoinTask)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsCancelled

Возвращает, true если эта задача была отменена до его завершения обычно.

(Унаследовано от ForkJoinTask)
IsCompletedAbnormally

Возвращает, true если эта задача вызвала исключение или была отменена.

(Унаследовано от ForkJoinTask)
IsCompletedNormally

Возвращает, true если эта задача завершена без исключения и не была отменена.

(Унаследовано от ForkJoinTask)
IsDone

Возвращает, true если эта задача завершена.

(Унаследовано от ForkJoinTask)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
JniPeerMembers

Рекурсивный результат.ForkJoinTask

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
RawRawResult

Возвращает результат, который будет возвращен Join(), даже если эта задача завершена ненормально или null если эта задача не была завершена.

(Унаследовано от ForkJoinTask)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
Cancel(Boolean)

Пытается отменить выполнение этой задачи.

(Унаследовано от ForkJoinTask)
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
CompareAndSetForkJoinTaskTag(Int16, Int16)

Атомарно задает значение тега для этой задачи.

(Унаследовано от ForkJoinTask)
Complete(Object)

Завершает эту задачу, а если она еще не прервана или отменена, возвращает заданное значение в результате последующих вызовов join и связанных операций.

(Унаследовано от ForkJoinTask)
CompleteExceptionally(Throwable)

Завершает эту задачу ненормально, а если она еще не прервана или отменена, вызывает исключение при join выполнении и связанных операциях.

(Унаследовано от ForkJoinTask)
Compute()

Основные вычисления, выполняемые этой задачей.

Construct(JniObjectReference, JniObjectReferenceOptions)

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
Equals(Object)

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
ExceptionNow()

Рекурсивный результат.ForkJoinTask

(Унаследовано от ForkJoinTask)
Exec()

Реализует соглашения о выполнении для RecursiveTask.

Fork()

Упорядочивает асинхронное выполнение этой задачи в пуле, в котором выполняется текущая задача, если применимо, или используется, ForkJoinPool#commonPool() если нет #inForkJoinPool.

(Унаследовано от ForkJoinTask)
Get()

Ожидает завершения вычисления, а затем извлекает результат.

(Унаследовано от ForkJoinTask)
Get(Int64, TimeUnit)

Ожидает, если это необходимо, по крайней мере заданное время для завершения вычисления, а затем извлекает его результат, если он доступен.

(Унаследовано от ForkJoinTask)
GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
Invoke()

Начинает выполнение этой задачи, ожидает завершения при необходимости и возвращает его результат или вызывает (снято) RuntimeException или Error если базовое вычисление сделал это.

(Унаследовано от ForkJoinTask)
JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Join()

Возвращает результат вычисления при выполнении #isDone.

(Унаследовано от ForkJoinTask)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
QuietlyComplete()

Обычно выполняет эту задачу без задания значения.

(Унаследовано от ForkJoinTask)
QuietlyInvoke()

Начинает выполнение этой задачи и ожидает завершения при необходимости, не возвращая результат или бросая исключение.

(Унаследовано от ForkJoinTask)
QuietlyJoin()

Присоединяет эту задачу, не возвращая результат или не вызывая исключение.

(Унаследовано от ForkJoinTask)
QuietlyJoin(Int64, TimeUnit)

Пытается присоединиться к этой задаче, возвращая значение true, если оно завершено (возможно, исключительно) до заданного времени ожидания и текущего потока не было прервано.

(Унаследовано от ForkJoinTask)
QuietlyJoinUninterruptibly(Int64, TimeUnit)

Пытается присоединиться к этой задаче, возвращая значение true, если оно завершено (возможно, исключительно) до заданного времени ожидания.

(Унаследовано от ForkJoinTask)
Reinitialize()

Сбрасывает состояние внутренней бухгалтерии этой задачи, позволяя последующему fork.

(Унаследовано от ForkJoinTask)
ResultNow()

Рекурсивный результат.ForkJoinTask

(Унаследовано от ForkJoinTask)
SetForkJoinTaskTag(Int16)

Атомарно задает значение тега для этой задачи и возвращает старое значение.

(Унаследовано от ForkJoinTask)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
SetRawResult(Object)

Принудительно возвращает заданное значение в результате.

(Унаследовано от ForkJoinTask)
State()

Рекурсивный результат.ForkJoinTask

(Унаследовано от ForkJoinTask)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
TryUnfork()

Пытается отменить эту задачу для выполнения.

(Унаследовано от ForkJoinTask)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Рекурсивный результат.ForkJoinTask

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Рекурсивный результат.ForkJoinTask

(Унаследовано от ForkJoinTask)

Методы расширения

Имя. Описание
GetAsync(IFuture, Int64, TimeUnit)

Рекурсивный результат.ForkJoinTask

GetAsync(IFuture)

Рекурсивный результат.ForkJoinTask

GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Рекурсивный результат.ForkJoinTask

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к