共用方式為


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 是未攔截 RuntimeExceptionError 導致執行突然終止的 。

此實作不會執行任何動作,但可以在子類別中自定義。 注意:若要正確巢狀多個覆寫,子類別通常應該在此方法的開頭叫 super.afterExecute 用。

<b>注意:</b> 當動作被明確或透過這類submit方法括住時FutureTask,這些工作物件會攔截和維護計算例外狀況,因此它們不會造成突然終止,而內部例外狀況則為 <em>not</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.util.concurrent.ThreadPoolExecutor.afterExecute(java.lang.Runnable, java.lang.Throwable)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於