ThreadPoolExecutor Classe

Définition

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

[Android.Runtime.Register("java/util/concurrent/ThreadPoolExecutor", DoNotGenerateAcw=true)]
public class ThreadPoolExecutor : Java.Util.Concurrent.AbstractExecutorService
[<Android.Runtime.Register("java/util/concurrent/ThreadPoolExecutor", DoNotGenerateAcw=true)>]
type ThreadPoolExecutor = class
    inherit AbstractExecutorService
Héritage
Dérivé
Attributs

Remarques

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

Les pools de threads résolvent deux problèmes différents : ils fournissent généralement des performances améliorées lors de l’exécution d’un grand nombre de tâches asynchrones, en raison d’une surcharge d’appel par tâche réduite et fournissent un moyen de délimitation et de gestion des ressources, y compris les threads, consommés lors de l’exécution d’une collection de tâches. Chacun ThreadPoolExecutor gère également certaines statistiques de base, telles que le nombre de tâches terminées.

Pour être utile dans un large éventail de contextes, cette classe fournit de nombreux paramètres réglables et crochets d’extensibilité. Toutefois, les programmeurs sont invités à utiliser les méthodes Executors#newCachedThreadPool de fabrique les plus pratiques Executors (pool de threads non liés, avec récupération automatique des threads), Executors#newFixedThreadPool (pool de threads de taille fixe) et Executors#newSingleThreadExecutor (thread d’arrière-plan unique), qui préconfigurent les scénarios d’utilisation les plus courants. Sinon, utilisez le guide suivant lors de la configuration et du réglage manuels de cette classe :

<dl>

<dt>Core et tailles de pool maximales</dt>

<dd>A ThreadPoolExecutor ajuste automatiquement la taille du pool (voir #getPoolSize) en fonction des limites définies par corePoolSize (voir #getCorePoolSize) et maximumPoolSize (voir #getMaximumPoolSize).

Lorsqu’une nouvelle tâche est envoyée dans la méthode #execute(Runnable), si moins de threads corePoolSize sont en cours d’exécution, un nouveau thread est créé pour gérer la requête, même si d’autres threads de travail sont inactifs. Sinon, si moins de threadsPoolSize sont en cours d’exécution, un nouveau thread est créé pour gérer la requête uniquement si la file d’attente est pleine. En définissant corePoolSize et maximumPoolSize identiques, vous créez un pool de threads de taille fixe. En définissant maximumPoolSize sur une valeur essentiellement illimitée telle que Integer.MAX_VALUE, vous autorisez le pool à prendre en charge un nombre arbitraire de tâches simultanées. La plupart du temps, les tailles de noyau et de pool maximale sont définies uniquement lors de la construction, mais elles peuvent également être modifiées dynamiquement à l’aide #setCorePoolSize et #setMaximumPoolSize. </Dd>

<dt construction</dt>à la demande>

<dd>Par défaut, même les threads principaux sont initialement créés et démarrés uniquement lorsque de nouvelles tâches arrivent, mais cela peut être substitué dynamiquement à l’aide de la méthode #prestartCoreThread ou #prestartAllCoreThreads. Vous souhaitez probablement prédémarrer les threads si vous construisez le pool avec une file d’attente non vide. </Dd>

<dt>Création de threads</dt>

<dd>New threads sont créés à l’aide d’un ThreadFactory. Si ce n’est pas le cas, un Executors#defaultThreadFactory thread est utilisé, ce qui crée des threads dans le même ThreadGroup état et avec la même priorité et le même NORM_PRIORITY état non démon. En fournissant un autre ThreadFactory, vous pouvez modifier le nom du thread, le groupe de threads, la priorité, l’état du démon, etc. Si un ThreadFactory thread ne parvient pas à créer un thread lorsqu’il est demandé en retournant null, newThreadl’exécuteur continue, mais peut ne pas être en mesure d’exécuter des tâches. Les threads doivent posséder la propriété « modifyThread ». RuntimePermission Si les threads de travail ou d’autres threads utilisant le pool ne possèdent pas cette autorisation, le service peut être détérioré : les modifications de configuration peuvent ne pas prendre effet en temps voulu et un pool d’arrêt peut rester dans un état dans lequel l’arrêt est possible, mais pas terminé.</Dd>

<>temps de conservation</dt>

<dd>Si le pool a actuellement plus de threads corePoolSize, des threads excédentaires sont arrêtés s’ils ont été inactifs pendant plus que keepAliveTime (voir #getKeepAliveTime(TimeUnit)). Cela permet de réduire la consommation des ressources lorsque le pool n’est pas utilisé activement. Si le pool devient plus actif plus tard, de nouveaux threads seront construits. Ce paramètre peut également être modifié dynamiquement à l’aide de la méthode #setKeepAliveTime(long, TimeUnit). L’utilisation d’une valeur permettant de Long.MAX_VALUETimeUnit#NANOSECONDS désactiver efficacement les threads inactifs ne cesse de se terminer avant d’arrêter. Par défaut, la stratégie keep-alive s’applique uniquement lorsqu’il existe plus de threads corePoolSize, mais la méthode peut être utilisée pour appliquer cette stratégie #allowCoreThreadTimeOut(boolean) de délai d’attente aux threads principaux, tant que la valeur keepAliveTime n’est pas zéro. </Dd>

<dt>Queuing</dt>

<dd>Tout BlockingQueue peut être utilisé pour transférer et contenir les tâches soumises. L’utilisation de cette file d’attente interagit avec le dimensionnement du pool :

<ul>

<li>Si moins de threads corePoolSize sont en cours d’exécution, l’exécuteur préfère toujours ajouter un nouveau thread plutôt que de mettre en file d’attente.

<li>If corePoolSize ou plusieurs threads sont en cours d’exécution, l’exécuteur préfère toujours mettre en file d’attente une requête plutôt que d’ajouter un nouveau thread.

<li>Si une requête ne peut pas être mise en file d’attente, un nouveau thread est créé, sauf si cela dépasse maximumPoolSize, auquel cas, la tâche est rejetée.

</ul>

Il existe trois stratégies générales pour la mise en file d’attente : <ol>

<li><em> Direct handoffs.</em> Un bon choix par défaut pour une file d’attente de travail est une SynchronousQueue tâche qui remet les tâches aux threads sans les conserver. Ici, une tentative de file d’attente d’une tâche échoue si aucun thread n’est immédiatement disponible pour l’exécuter, de sorte qu’un nouveau thread sera construit. Cette stratégie évite les verrouillages lors de la gestion des ensembles de requêtes susceptibles d’avoir des dépendances internes. Les documents directs nécessitent généralement un maximum depoolSizes sans limite pour éviter le rejet de nouvelles tâches soumises. Cela admet à son tour la possibilité de croissance des threads non liés lorsque les commandes continuent d’arriver en moyenne plus rapidement qu’elles ne peuvent être traitées.

<files d’attente non liées li><em> .</em> L’utilisation d’une file d’attente sans limite (par exemple, sans LinkedBlockingQueue capacité prédéfinie) entraîne l’attente de nouvelles tâches dans la file d’attente lorsque tous les threads corePoolSize sont occupés. Ainsi, pas plus que les threads corePoolSize ne seront jamais créés. (Et la valeur du maximumPoolSize n’a donc aucun effet.) Cela peut être approprié lorsque chaque tâche est complètement indépendante des autres, de sorte que les tâches ne peuvent pas affecter l’exécution des autres ; par exemple, dans un serveur de pages web. Bien que ce style de mise en file d’attente puisse être utile pour lissage des rafales temporaires de requêtes, il admet la possibilité d’une croissance de file d’attente de travail sans limite lorsque les commandes continuent d’arriver en moyenne plus rapidement qu’elles ne peuvent être traitées.

<files d’attente limitées li><em>.</em> Une file d’attente limitée (par exemple, un ArrayBlockingQueue) permet d’empêcher l’épuisement des ressources lorsqu’elle est utilisée avec des valeurs maximales limitées, mais peut être plus difficile à régler et contrôler. Les tailles de file d’attente et les tailles de pool maximales peuvent être échangées entre elles : l’utilisation de files d’attente volumineuses et de petits pools réduit l’utilisation du processeur, les ressources du système d’exploitation et la surcharge de basculement de contexte, mais peut entraîner un débit artificiellement faible. Si les tâches bloquent fréquemment (par exemple si elles sont liées aux E/S), un système peut être en mesure de planifier du temps pour plus de threads que vous ne l’autorisez dans le cas contraire. L’utilisation de petites files d’attente nécessite généralement des tailles de pool plus grandes, ce qui maintient les processeurs plus busé, mais peut rencontrer une surcharge de planification inacceptable, ce qui réduit également le débit.

</ol>

</Dd>

<tâches rejetées</dt>>

<Dd>Nouvelles tâches soumises dans la méthode #execute(Runnable) sont <>rejetées</em> lorsque l’exécuteur a été arrêté, et également lorsque l’exécuteur utilise des limites finies pour les threads maximum et la capacité de file d’attente de travail, et est saturé. Dans les deux cas, la execute méthode appelle la RejectedExecutionHandler#rejectedExecution(Runnable, ThreadPoolExecutor) méthode de son RejectedExecutionHandler. Quatre stratégies de gestionnaire prédéfinies sont fournies :

<ol>

<li>Dans la valeur par défaut ThreadPoolExecutor.AbortPolicy, le gestionnaire lève un runtime RejectedExecutionException lors du rejet.

<li>In ThreadPoolExecutor.CallerRunsPolicy, le thread qui s’appelle execute lui-même exécute la tâche. Cela fournit un mécanisme de contrôle de commentaires simple qui ralentit le taux d’envoi de nouvelles tâches.

<li>In ThreadPoolExecutor.DiscardPolicy, une tâche qui ne peut pas être exécutée est simplement supprimée. Cette stratégie est conçue uniquement pour les rares cas où l’achèvement de la tâche n’est jamais utilisé.

<li>In ThreadPoolExecutor.DiscardOldestPolicy, si l’exécuteur n’est pas arrêté, la tâche à la tête de la file d’attente de travail est supprimée, puis l’exécution est retentée (qui peut échouer à nouveau, ce qui entraîne la répétition de cette opération.) Cette stratégie est rarement acceptable. Dans presque tous les cas, vous devez également annuler la tâche pour provoquer une exception dans n’importe quel composant en attente de sa fin et/ou consigner l’échec, comme illustré dans la ThreadPoolExecutor.DiscardOldestPolicy documentation.

</ol>

Il est possible de définir et d’utiliser d’autres types de RejectedExecutionHandler classes. Cela nécessite des soins en particulier lorsque les stratégies sont conçues pour fonctionner uniquement sous une capacité particulière ou des stratégies de mise en file d’attente. </Dd>

<méthodes< dt>Hook/dt>

<dd>Cette classe fournit des protected méthodes substituables #beforeExecute(Thread, Runnable)#afterExecute(Runnable, Throwable) qui sont appelées avant et après l’exécution de chaque tâche. Ils peuvent être utilisés pour manipuler l’environnement d’exécution ; par exemple, réinitialiser ThreadLocals, collecter des statistiques ou ajouter des entrées de journal. En outre, la méthode #terminated peut être substituée pour effectuer tout traitement spécial qui doit être effectué une fois que l’exécuteur a entièrement terminé.

Si les méthodes hook, callback ou BlockingQueue lèvent des exceptions, les threads de travail internes peuvent à leur tour échouer, arrêter brusquement et éventuellement être remplacés.</Dd>

<maintenance< de file dt dt>/dt>

<La méthode #getQueue() dd>autorise l’accès à la file d’attente de travail à des fins de surveillance et de débogage. L’utilisation de cette méthode à d’autres fins est fortement déconseillée. Deux méthodes fournies et #remove(Runnable)#purge sont disponibles pour faciliter la récupération du stockage quand un grand nombre de tâches en file d’attente sont annulées.</Dd>

<dt>Reclamation</dt>

<Dd>Un pool qui n’est plus référencé dans un programme <EM>AND</em> n’a pas de threads restants peut être récupéré (garbage collected) sans être explicitement arrêté. Vous pouvez configurer un pool pour permettre à tous les threads inutilisés de mourir en définissant des heures de conservation appropriées, en utilisant une limite inférieure de threads de cœurs zéro et/ou paramètre #allowCoreThreadTimeOut(boolean). </Dd>

</Dl>

<b>Exemple d’extension.</b> La plupart des extensions de cette classe remplacent une ou plusieurs des méthodes de hook protégées. Par exemple, voici une sous-classe qui ajoute une fonctionnalité de pause/reprise simple :

{@code
            class PausableThreadPoolExecutor extends ThreadPoolExecutor {
              private boolean isPaused;
              private ReentrantLock pauseLock = new ReentrantLock();
              private Condition unpaused = pauseLock.newCondition();

              public PausableThreadPoolExecutor(...) { super(...); }

              protected void beforeExecute(Thread t, Runnable r) {
                super.beforeExecute(t, r);
                pauseLock.lock();
                try {
                  while (isPaused) unpaused.await();
                } catch (InterruptedException ie) {
                  t.interrupt();
                } finally {
                  pauseLock.unlock();
                }
              }

              public void pause() {
                pauseLock.lock();
                try {
                  isPaused = true;
                } finally {
                  pauseLock.unlock();
                }
              }

              public void resume() {
                pauseLock.lock();
                try {
                  isPaused = false;
                  unpaused.signalAll();
                } finally {
                  pauseLock.unlock();
                }
              }
            }}

Ajouté à la version 1.5.

Documentation Java pour java.util.concurrent.ThreadPoolExecutor.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

ThreadPoolExecutor(Int32, Int32, Int64, TimeUnit, IBlockingQueue)

Crée un nouveau ThreadPoolExecutor avec les paramètres initiaux donnés, la fabrique de threads par défaut Executors#defaultThreadFactory et threadPoolExecutor.

ThreadPoolExecutor(Int32, Int32, Int64, TimeUnit, IBlockingQueue, IRejectedExecutionHandler)

Crée un nouveau ThreadPoolExecutor avec les paramètres initiaux donnés et la fabrique de threads par défaut Executors#defaultThreadFactory.

ThreadPoolExecutor(Int32, Int32, Int64, TimeUnit, IBlockingQueue, IThreadFactory)

Crée un nouveau ThreadPoolExecutor avec les paramètres initiaux donnés et ThreadPoolExecutor.

ThreadPoolExecutor(Int32, Int32, Int64, TimeUnit, IBlockingQueue, IThreadFactory, IRejectedExecutionHandler)

Crée un nouveau ThreadPoolExecutor avec les paramètres initiaux donnés.

ThreadPoolExecutor(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Propriétés

ActiveCount

Retourne le nombre approximatif de threads qui exécutent activement des tâches.

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
CompletedTaskCount

Retourne le nombre total approximatif de tâches qui ont terminé l’exécution.

CorePoolSize

Retourne le nombre principal de threads. -ou- Définit le nombre principal de threads.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
IsShutdown

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

IsTerminated

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

IsTerminating

Retourne true si cet exécuteur est dans le processus de fin après #shutdown ou #shutdownNow n’a pas complètement terminé.

JniIdentityHashCode

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
JniPeerMembers

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

LargestPoolSize

Retourne le plus grand nombre de threads qui ont jamais été simultanément dans le pool.

MaximumPoolSize

Retourne le nombre maximal autorisé de threads. -ou- Définit le nombre maximal autorisé de threads.

PeerReference

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
PoolSize

Retourne le nombre actuel de threads dans le pool.

Queue

Retourne la file d’attente des tâches utilisée par cet exécuteur.

RejectedExecutionHandler

Retourne le gestionnaire actuel pour les tâches non exécutables. -ou- Définit un nouveau gestionnaire pour les tâches non exécutables.

TaskCount

Retourne le nombre total approximatif de tâches qui ont jamais été planifiées pour l’exécution.

ThreadFactory

Retourne la fabrique de threads utilisée pour créer de nouveaux threads. -ou- Définit la fabrique de threads utilisée pour créer de nouveaux threads.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

AfterExecute(IRunnable, Throwable)

Méthode appelée à la fin de l’exécution du Runnable donné.

AllowCoreThreadTimeOut(Boolean)

Définit la stratégie qui détermine si les threads principaux peuvent expirer et se terminer si aucune tâche n’arrive dans le délai de conservation, en cours de remplacement si nécessaire lorsque de nouvelles tâches arrivent.

AllowsCoreThreadTimeOut()

Retourne true si ce pool permet aux threads principaux d’expirer et de se terminer si aucune tâche n’arrive dans le délai de conservation, remplacée si nécessaire lorsque de nouvelles tâches arrivent.

AwaitTermination(Int64, TimeUnit)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

AwaitTerminationAsync(Int64, TimeUnit)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
BeforeExecute(Thread, IRunnable)

Méthode appelée avant l’exécution de l’runnable donné dans le thread donné.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Dispose()

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
Dispose(Boolean)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
Execute(IRunnable)

Exécute la tâche donnée à l’avenir.

GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
GetKeepAliveTime(TimeUnit)

Retourne le temps de conservation du thread, qui est la durée pendant laquelle les threads peuvent rester inactifs avant d’être arrêtés.

InvokeAll(ICollection)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
InvokeAll(ICollection, Int64, TimeUnit)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
InvokeAny(ICollection)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
NewTaskFor(ICallable)

Retourne une RunnableFuture tâche pouvant être appelée donnée.

(Hérité de AbstractExecutorService)
NewTaskFor(IRunnable, Object)

Retourne une RunnableFuture valeur exécutable et par défaut donnée.

(Hérité de AbstractExecutorService)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
PrestartAllCoreThreads()

Démarre tous les threads principaux, ce qui les oblige à attendre le travail de manière idé.

PrestartCoreThread()

Démarre un thread principal, ce qui lui permet d’attendre de façon idé le travail.

Purge()

Tente de supprimer de la file d’attente de travail toutes les Future tâches qui ont été annulées.

Remove(IRunnable)

Supprime cette tâche de la file d’attente interne de l’exécuteur s’il est présent, ce qui l’empêche d’être exécutée si elle n’a pas déjà démarré.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetKeepAliveTime(Int64, TimeUnit)

Définit le temps de conservation en vie du thread, qui est la durée pendant laquelle les threads peuvent rester inactifs avant d’être arrêtés.

Shutdown()

Lance un arrêt ordonné dans lequel les tâches précédemment soumises sont exécutées, mais aucune nouvelle tâche n’est acceptée.

ShutdownNow()

Tente d’arrêter toutes les tâches en cours d’exécution active, arrête le traitement des tâches en attente et retourne une liste des tâches qui attendaient l’exécution.

Submit(ICallable)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
Submit(IRunnable)

Envoie une tâche exécutable pour l’exécution et retourne un futur représentant cette tâche.

(Hérité de AbstractExecutorService)
Submit(IRunnable, Object)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de AbstractExecutorService)
Terminated()

Méthode appelée lorsque l’exécuteur a terminé.

ToArray<T>()

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

IJavaPeerable.Disposed()

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
IJavaPeerable.Finalized()

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

GetJniTypeName(IJavaPeerable)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

InvokeAnyAsync(IExecutorService, ICollection)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

Qui ExecutorService exécute chaque tâche envoyée à l’aide de l’un des threads mis en pool, normalement configuré à l’aide Executors de méthodes de fabrique.

S’applique à