Freigeben über


ThreadPoolExecutor.AfterExecute(IRunnable, Throwable) Methode

Definition

Methode, die nach Abschluss der Ausführung des angegebenen Runnable aufgerufen wird.

[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

Parameter

r
IRunnable

runnable that has completed

t
Throwable

Ausnahme, die eine Beendigung verursacht hat, oder NULL, wenn die Ausführung normal abgeschlossen wurde

Attribute

Hinweise

Methode, die nach Abschluss der Ausführung des angegebenen Runnable aufgerufen wird. Diese Methode wird vom Thread aufgerufen, der die Aufgabe ausgeführt hat. Wenn kein Nullwert ist, ist die Auslöser die unangeknutzte RuntimeException Oder Error die dazu führte, dass die Ausführung abrupt beendet wurde.

Diese Implementierung führt nichts aus, kann aber in Unterklassen angepasst werden. Hinweis: Um mehrere Außerkraftsetzungen ordnungsgemäß zu verschachteln, sollten Unterklassen in der Regel am Anfang dieser Methode aufgerufen werden super.afterExecute .

<b>Hinweis:</b> Wenn Aktionen in Vorgänge eingeschlossen werden (zFutureTask. B. ) entweder explizit oder über Methoden wie submitz. B. diese Aufgabenobjekte erfassen und warten rechentechnische Ausnahmen, und sie verursachen keine abrupte Beendigung, und die internen Ausnahmen werden <nicht>< an> diese Methode übergeben. Wenn Sie beide Arten von Fehlern in dieser Methode abfangen möchten, können Sie weitere Untersuchungen für solche Fälle ausführen, wie in dieser Beispielunterklasse, die entweder die direkte Ursache oder die zugrunde liegende Ausnahme druckt, wenn eine Aufgabe abgebrochen wurde:

{@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-Dokumentation für java.util.concurrent.ThreadPoolExecutor.afterExecute(java.lang.Runnable, java.lang.Throwable).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: