次の方法で共有


ThreadPoolExecutor.AfterExecute(IRunnable, Throwable) メソッド

定義

指定された Runnable の実行が完了したときに呼び出されるメソッド。

[Android.Runtime.Register("afterExecute", "(Ljava/lang/Runnable;Ljava/lang/Throwable;)V", "GetAfterExecute_Ljava_lang_Runnable_Ljava_lang_Throwable_Handler")]
protected virtual void AfterExecute (Java.Lang.IRunnable? r, Java.Lang.Throwable? t);
[<Android.Runtime.Register("afterExecute", "(Ljava/lang/Runnable;Ljava/lang/Throwable;)V", "GetAfterExecute_Ljava_lang_Runnable_Ljava_lang_Throwable_Handler")>]
abstract member AfterExecute : Java.Lang.IRunnable * Java.Lang.Throwable -> unit
override this.AfterExecute : Java.Lang.IRunnable * Java.Lang.Throwable -> unit

パラメーター

r
IRunnable

完了した実行可能ファイル

t
Throwable

終了の原因となった例外。実行が正常に完了した場合は null

属性

注釈

指定された Runnable の実行が完了したときに呼び出されるメソッド。 このメソッドは、タスクを実行したスレッドによって呼び出されます。 null 以外の場合、Throwable はキャッチ RuntimeException されないか、実行 Error が突然終了する原因となったものです。

この実装では何も行われませんが、サブクラスでカスタマイズできます。 注: 複数のオーバーライドを適切に入れ子にするには、通常、サブクラスはこのメソッドの先頭で呼び出す super.afterExecute 必要があります。

<b>注:</b> アクションがタスク (たとえばFutureTask) で明示的に、またはメソッドをsubmit介して囲まれている場合、これらのタスク オブジェクトは計算例外をキャッチして維持するため、突然の終了を引き起こさないため、内部例外<>はこのメソッドに渡されません</em>。 このメソッドで両方の種類のエラーをトラップする場合は、タスクが中止された場合に直接の原因または基になる例外を出力するこのサンプル サブクラスのように、このようなケースに対してさらにプローブできます。

{@code
            class ExtendedExecutor extends ThreadPoolExecutor {
              // ...
              protected void afterExecute(Runnable r, Throwable t) {
                super.afterExecute(r, t);
                if (t == null
                    && r instanceof Future<?>
                    && ((Future<?>)r).isDone()) {
                  try {
                    Object result = ((Future<?>) r).get();
                  } catch (CancellationException ce) {
                    t = ce;
                  } catch (ExecutionException ee) {
                    t = ee.getCause();
                  } catch (InterruptedException ie) {
                    // ignore/reset
                    Thread.currentThread().interrupt();
                  }
                }
                if (t != null)
                  System.out.println(t);
              }
            }}

の Java ドキュメントjava.util.concurrent.ThreadPoolExecutor.afterExecute(java.lang.Runnable, java.lang.Throwable)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象