Compartir a través de


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

Vea también

Referencia

IVsDataHostService Interfaz

Microsoft.VisualStudio.Data.Core (Espacio de nombres)