IVsDataHostService.UIThread (Propiedad)
Obtiene la ejecución principal del subproceso (de la interfaz de usuario) en el proceso de Visual Studio.
Espacio de nombres: Microsoft.VisualStudio.Data.Core
Ensamblado: Microsoft.VisualStudio.Data.Core (en Microsoft.VisualStudio.Data.Core.dll)
Sintaxis
'Declaración
ReadOnly Property UIThread As Thread
Thread UIThread { get; }
property Thread^ UIThread {
Thread^ get ();
}
abstract UIThread : Thread with get
function get UIThread () : Thread
Valor de propiedad
Tipo: Thread
El uso principal del subproceso (de la interfaz de usuario) en el proceso de Visual Studio.
Comentarios
Esta propiedad es útil para determinar si el código está ejecutando en el subproceso principal del proceso de Visual Studio. Esto suele ser útil rodeando llamadas a InvokeOnUIThread o métodos de BeginInvokeOnUIThread para evitar la sobrecarga de un delegado dinámico principal.
Ejemplos
El código siguiente se muestra un uso común de la propiedad de UIThread para determinar si un método que debe ejecutarse en el subproceso de la interfaz de usuario se puede llamar directamente o se debe invocar dinámicamente al calcular las referencias llamada entre subprocesos.
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
}
}
Seguridad de .NET Framework
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.