Langue

DispatchSource Classe

Définition

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

public class DispatchSource : CoreFoundation.DispatchObject
type DispatchSource = class
    inherit DispatchObject
Héritage
Dérivé

Remarques

Les sources d’événements dispatch peuvent être utilisées pour surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.  Pour surveiller un type spécifique de source, vous créez une instance de l’une des sous-classes DispatchSource :

Lorsqu’une modification d’état se produit, la source de distribution envoie son bloc de gestionnaire d’événements à sa file d’attente cible.

Les sources nouvellement créées sont créées dans un état suspendu. Une fois la source configurée en définissant un gestionnaire d’événements, un gestionnaire d’annulation, un gestionnaire d’inscription, un contexte, etc., la source doit être activée par un appel pour Resume() qu’aucun événement ne soit remis.

Gestionnaires d’événements sources

Pour recevoir des événements de la source de distribution, un gestionnaire d’événements doit être spécifié via SetEventHandler(Action). Le gestionnaire d’événements est soumis à la file d’attente cible de la source lorsque l’état du handle système sous-jacent change ou lorsqu’un événement se produit. Si une source est reprise sans jeu de blocs de gestionnaire d’événements, les événements sont ignorés silencieusement. Si le gestionnaire d’événements est modifié pendant que la source est suspendue ou à partir d’un bloc s’exécutant sur une file d’attente série qui est la file d’attente cible de la source, l’appel du gestionnaire d’événements suivant utilise le nouveau bloc.

Les sources de répartition peuvent être suspendues ou reprise indépendamment de leurs files d’attente cibles à l’aide Suspend() et Resume() sur la source de distribution directement. Les données décrivant les événements qui se produisent pendant qu’une source est suspendue sont fusionnées et remises une fois la source reprise.

Le gestionnaire n’a pas besoin d’être reentrant sécurisé, car il n’est pas renvoyé à la file d’attente cible tant qu’un appel antérieur pour cette source de distribution n’est pas terminé.

Pour annuler l’ensemble du gestionnaire d’événements, appel SetEventHandler(Action) passez null en tant qu’argument.

Enregistrement

Lorsqu’elle Resume() est appelée sur une source suspendue ou nouvellement créée, il peut y avoir un court délai avant que la source soit prête à recevoir des événements du handle système sous-jacent. Pendant ce délai, le gestionnaire d’événements ne sera pas appelé et les événements seront manqués.

Une fois que la source de distribution est inscrite auprès du système sous-jacent et qu’elle est prête à traiter tous les événements que son gestionnaire d’inscription facultatif sera soumis à sa file d’attente cible. Ce gestionnaire d’inscription peut être spécifié via SetRegistrationHandler(Action).

Le gestionnaire d’événements n’est pas appelé tant que le gestionnaire d’inscription n’est pas terminé. Si la source est annulée (voir ci-dessous) avant son inscription, son gestionnaire d’inscription n’est pas appelé.

Annulation

La Cancel() fonction annule de façon asynchrone la source de distribution, empêchant tout appel supplémentaire de son bloc de gestionnaire d’événements. L’annulation n’interrompt pas un bloc de gestionnaire en cours d’exécution (non préemptif). Si une source est annulée avant la première reprise, son gestionnaire d’événements ne sera jamais appelé. (Dans ce cas, notez que la source doit être reprise avant sa publication.)

La IsCanceled fonction peut être utilisée pour déterminer si la source spécifiée a été annulée.

Lorsqu’une source de distribution est annulée, son gestionnaire d’annulation facultatif est soumis à sa file d’attente cible. Le gestionnaire d’annulation peut être spécifié via SetCancelHandler(Action). Ce gestionnaire d’annulation n’est appelé qu’une seule fois, et uniquement en conséquence directe de l’appel Cancel().

Important : un gestionnaire d’annulation est requis pour le descripteur de fichier et les sources de port mach afin de fermer le descripteur ou de détruire le port en toute sécurité. La fermeture du descripteur ou du port avant l’exécution du gestionnaire d’annulation peut entraîner une condition de concurrence : si un nouveau descripteur est alloué avec la même valeur que le descripteur récemment fermé pendant que le gestionnaire d’événements de la source est toujours en cours d’exécution, le gestionnaire d’événements peut lire/écrire des données dans le descripteur incorrect.

Propriétés

Nom Description
Handle

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)
IsCanceled

Déterminez si la source spécifiée a été annulée.

Owns

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)

Méthodes

Nom Description
Activate()

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DispatchObject)
Cancel()

Annule de façon asynchrone la source de distribution.

ClearHandle()

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)
Dispose()

Libère toutes les ressources utilisées par cet objet.

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

Libère les ressources utilisées par l’objet DispatchSource.

Equals(Object)

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)
GetCheckedHandle()

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)
GetHashCode()

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)
InitializeHandle(NativeHandle)

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DisposableObject)
Release()

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DispatchObject)
Resume()

Reprend la source de distribution.

Retain()

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DispatchObject)
SetCancelHandler(Action)

Fournit un gestionnaire d’annulation

SetEventHandler(Action)

Spécifie un gestionnaire à exécuter lorsque les événements sont reçus sur la source de distribution.

SetRegistrationHandler(Action)

Fournit un gestionnaire d’inscription

SetTargetQueue(DispatchQueue)

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

(Hérité de DispatchObject)
Suspend()

Suspend la source de distribution.

Méthodes d’extension

Nom Description
GetHandle(INativeObject)

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

GetNonNullHandle(INativeObject, String)

DispatchSource est une classe de base utilisée pour reprener les sources d’événements qui peuvent surveiller une variété d’objets système et d’événements, notamment les descripteurs de fichiers, les ports mach, les processus, les nœuds de système de fichiers virtuels, la remise des signaux et les minuteurs.

S’applique à