Partager via


ThreadHelper, classe

Fournit un programme d'assistance générique de répartiteur pour vous assurer qu'une méthode est appelée sur le thread principal de l'application.

Hiérarchie d'héritage

System.Object
  Microsoft.VisualStudio.Shell.ThreadHelper

Espace de noms :  Microsoft.VisualStudio.Shell
Assembly :  Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)

Syntaxe

'Déclaration
Public MustInherit Class ThreadHelper
public abstract class ThreadHelper

Le type ThreadHelper expose les membres suivants.

Constructeurs

  Nom Description
Méthode protégée ThreadHelper Initialise une nouvelle instance d'ThreadHelper.

Début

Propriétés

  Nom Description
Propriété publiqueMembre statique Generic Obtient ThreadHelper générique.

Début

Méthodes

  Nom Description
Méthode publique BeginInvoke(Action)
Méthode publique BeginInvoke(DispatcherPriority, Action)
Méthode publiqueMembre statique CheckAccess
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode protégée GetInvocationWrapper Obtient le wrapper d'appel.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique Invoke(Action) Appelle une action sur le thread d'interface utilisateur.
Méthode publique Invoke<TResult>(Func<TResult>)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Remarques

Nous utilisons le répartiteur actuel de l'application pour l'identification pratique du thread principal.Notez que cela signifie que l'objet d'application doit être initialisé par le gestionnaire de fenêtrage.

Toutefois, des objets d'DispatcherOperation ne sont pas utilisés, car ils ne sont pas compatibles avec le RPC.Par exemple, si le thread d'interface utilisateur se trouve au milieu d'un appel du RPC, et code doit exécuter sur le thread d'interface utilisateur, puis les objets d'DispatcherOperation ne reçoivent pas.C'est parce que des objets d'DispatcherOperation sont initialisés en publiant un message au thread d'interface utilisateur, et le thread d'interface utilisateur doit acheminer ce message.Si le thread d'interface utilisateur fait un appel du RPC, ces messages ne seront pas supprimés de la file d'attente.OLE le filtre de messages de standard traite uniquement un jeu limité de messages de la file d'attente.

En allant via le service d'SVsUIThreadInvokerPrivate, l'opération devient un appel de COM au thread d'interface utilisateur.Il permet cette opération via le filtre de messages de Visual Studio si ce fait partie du même appel logique, étant donné que le filtre de messages le verra comme appel imbriqué et peut ne pas le repousser.

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Shell, espace de noms