IVsDataHostService.UIThread, propriété
Obtient l'exécution principal du thread (interface utilisateur) dans le processus de Visual Studio.
Espace de noms : Microsoft.VisualStudio.Data.Core
Assembly : Microsoft.VisualStudio.Data.Core (dans Microsoft.VisualStudio.Data.Core.dll)
Syntaxe
'Déclaration
ReadOnly Property UIThread As Thread
Thread UIThread { get; }
property Thread^ UIThread {
Thread^ get ();
}
abstract UIThread : Thread with get
function get UIThread () : Thread
Valeur de propriété
Type : Thread
L'exécution principal du thread (interface utilisateur) dans le processus de Visual Studio.
Notes
Cette propriété est utile pour déterminer si le code est en cours de exécution sur le thread principal du processus Visual Studio. Il est souvent utile entourant les appels à InvokeOnUIThread ou les méthodes d' BeginInvokeOnUIThread pour éviter la charge mémoire d'un délégué dynamique appellent.
Exemples
Le code suivant illustre une utilisation typique de la propriété d' UIThread de déterminer si une méthode qui doit s'exécuter sur le thread d'interface utilisateur peut être appelé directement ou dynamiquement doit être appelée pour marshaler l'appel entre les threads.
using System;
using System.Threading;
using Microsoft.VisualStudio.Data.Core;
using Microsoft.VisualStudio.Shell.Interop;
public class DdexHostSvcExample2
{
public static void UpdateUI(IVsDataHostService hostService)
{
if (Thread.CurrentThread == hostService.UIThread)
{
// Called on UI thread, directly call method
ActuallyUpdateUI(hostService);
}
else
{
// Called from background thread, begin invoke on UI thread
hostService.BeginInvokeOnUIThread(
new UpdateUIDelegate(ActuallyUpdateUI),
hostService);
}
}
private delegate void UpdateUIDelegate(IVsDataHostService hostService);
private static void ActuallyUpdateUI(IVsDataHostService hostService)
{
IVsUIShell uiShell = hostService.GetService<IVsUIShell>();
uiShell.UpdateCommandUI(0); // fImmediateUpdate == false
}
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, voir Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.