Partilhar via


Propriedade IVsDataHostService.UIThread

Obtém a execução do segmento principal (UI) no processo do Visual Studio.

Namespace:  Microsoft.VisualStudio.Data.Core
Assembly:  Microsoft.VisualStudio.Data.Core (em Microsoft.VisualStudio.Data.Core.dll)

Sintaxe

'Declaração
ReadOnly Property UIThread As Thread
Thread UIThread { get; }
property Thread^ UIThread {
    Thread^ get ();
}
abstract UIThread : Thread
function get UIThread () : Thread

Valor de propriedade

Tipo: System.Threading.Thread
A execução do segmento principal (UI) no processo do Visual Studio.

Comentários

Esta propriedade é útil para determinar se o código está em execução atualmente no segmento principal do processo do Visual Studio.Isso geralmente é útil cercando chamadas a InvokeOnUIThread os métodos ou de BeginInvokeOnUIThread para evitar a sobrecarga de um delegado dinâmico invoke.

Exemplos

O código a seguir demonstra um uso típico da propriedade de UIThread determinar se um método que deve executar no encadeamento de interface do usuário pode ser chamado diretamente ou dinamicamente deve ser chamado para empacotar a chamada entre segmentos.

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
    }
}

Segurança do .NET Framework

Consulte também

Referência

IVsDataHostService Interface

Namespace Microsoft.VisualStudio.Data.Core