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 | |
---|---|---|
ThreadHelper | Initialise une nouvelle instance d'ThreadHelper. |
Début
Propriétés
Nom | Description | |
---|---|---|
Generic | Obtient ThreadHelper générique. |
Début
Méthodes
Nom | Description | |
---|---|---|
BeginInvoke(Action) | ||
BeginInvoke(DispatcherPriority, Action) | ||
CheckAccess | ||
Equals | Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.) | |
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.) | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetInvocationWrapper | Obtient le wrapper d'appel. | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
Invoke(Action) | Appelle une action sur le thread d'interface utilisateur. | |
Invoke<TResult>(Func<TResult>) | ||
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
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.