RecursiveTask クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
再帰的な結果を含む 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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| RecursiveTask() |
呼び出すサブクラスのコンストラクター。 |
| RecursiveTask(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Exception |
基本計算によってスローされた例外、または取り消された場合は |
| ForkJoinTaskTag |
このタスクのタグを返します。 (継承元 ForkJoinTask) |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsCancelled |
このタスクが正常に完了する前に取り消された場合は、 |
| IsCompletedAbnormally |
このタスクが例外をスローした場合、または取り消された場合に |
| IsCompletedNormally |
このタスクが例外をスローせずに完了し、取り消されなかった場合に |
| IsDone |
このタスクが完了した場合 |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
再帰的な結果を含む |
| JniPeerMembers |
再帰的な結果を含む |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| RawRawResult |
このタスクが異常に完了した場合でも、 Join()によって返される結果を返します。このタスクが完了していない場合は |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Cancel(Boolean) |
このタスクの実行を取り消そうとします。 (継承元 ForkJoinTask) |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| CompareAndSetForkJoinTaskTag(Int16, Int16) |
このタスクのタグ値をアトミックに条件付きで設定します。 (継承元 ForkJoinTask) |
| Complete(Object) |
このタスクを完了し、まだ中止または取り消されていない場合は、後続の |
| CompleteExceptionally(Throwable) |
このタスクを異常終了し、まだ中止または取り消されていない場合は、 |
| Compute() |
このタスクによって実行される主な計算。 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
再帰的な結果を含む |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
再帰的な結果を含む |
| Equals(Object) |
再帰的な結果を含む |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| ExceptionNow() |
再帰的な結果を含む |
| Exec() |
RecursiveTask の実行規則を実装します。 |
| Fork() |
現在のタスクが実行されているプールで非同期的にこのタスクを実行するように配置します (該当する場合)。または |
| Get() |
計算が完了するまで必要に応じて待機し、その結果を取得します。 (継承元 ForkJoinTask) |
| Get(Int64, TimeUnit) |
必要に応じて、計算が完了するまで最大で指定された時間待機し、その結果 (使用可能な場合) を取得します。 (継承元 ForkJoinTask) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| Invoke() |
このタスクの実行を開始し、必要に応じて完了を待機して結果を返すか、基になる計算が実行された場合は (オフの) |
| JavaFinalize() |
古い.
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Join() |
#isDone が完了したときに計算の結果を返します。 (継承元 ForkJoinTask) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| QuietlyComplete() |
値を設定せずにこのタスクを正常に完了します。 (継承元 ForkJoinTask) |
| QuietlyInvoke() |
このタスクの実行を開始し、必要に応じて完了を待機します。結果を返したり、例外をスローしたりしません。 (継承元 ForkJoinTask) |
| QuietlyJoin() |
結果を返したり、例外をスローしたりせずに、このタスクに参加します。 (継承元 ForkJoinTask) |
| QuietlyJoin(Int64, TimeUnit) |
指定されたタイムアウトの前に完了し、現在のスレッドが中断されていない場合は true を返して、このタスクに参加しようとします。 (継承元 ForkJoinTask) |
| QuietlyJoinUninterruptibly(Int64, TimeUnit) |
このタスクへの参加を試みます。指定されたタイムアウトの前に完了した場合は true を返します (例外が発生する可能性があります)。 (継承元 ForkJoinTask) |
| Reinitialize() |
このタスクの内部ブックキーピング状態をリセットし、後続の |
| ResultNow() |
再帰的な結果を含む |
| SetForkJoinTaskTag(Int16) |
このタスクのタグ値をアトミックに設定し、古い値を返します。 (継承元 ForkJoinTask) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
再帰的な結果を含む |
| SetRawResult(Object) |
結果として、指定された値が強制的に返されます。 (継承元 ForkJoinTask) |
| State() |
再帰的な結果を含む |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| TryUnfork() |
このタスクの実行スケジュールの解除を試みます。 (継承元 ForkJoinTask) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
再帰的な結果を含む |
| IJavaPeerable.Finalized() |
再帰的な結果を含む |
| IJavaPeerable.JniObjectReferenceControlBlock |
再帰的な結果を含む |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
再帰的な結果を含む |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
再帰的な結果を含む |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
再帰的な結果を含む |
| IJavaPeerable.UnregisterFromRuntime() |
再帰的な結果を含む |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetAsync(IFuture, Int64, TimeUnit) |
再帰的な結果を含む |
| GetAsync(IFuture) |
再帰的な結果を含む |
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
再帰的な結果を含む |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|