ThreadPoolExecutor.AfterExecute(IRunnable, Throwable) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
runnable that has completed
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 submit
z. 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);
}
}}
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.