다음을 통해 공유


IVsDataHostService.UIThread 속성

Visual Studio 프로세스에서 실행 되는 주 (UI) 스레드를 가져옵니다.

네임스페이스:  Microsoft.VisualStudio.Data.Core
어셈블리:  Microsoft.VisualStudio.Data.Core(Microsoft.VisualStudio.Data.Core.dll)

구문

‘선언
ReadOnly Property UIThread As Thread
Thread UIThread { get; }
property Thread^ UIThread {
    Thread^ get ();
}
abstract UIThread : Thread with get
function get UIThread () : Thread

속성 값

형식: Thread
주 (UI) Visual Studio 프로세스에서 실행 중인 스레드입니다.

설명

이 속성은 코드 Visual Studio 프로세스의 기본 스레드에서 현재 실행 중인 여부를 결정 하는 유용 합니다. 종종 유용 호출을 둘러싼의 InvokeOnUIThread 또는 BeginInvokeOnUIThread 오버 헤드가 동적 대리자의 메서드를 호출 합니다.

예제

다음 코드는 일반적인 사용 방법을 보여 줍니다.을 UIThread UI 스레드에서 실행 해야 메서드를 직접 호출할 수 또는 스레드 간의 호출을 마샬링하는 동적으로 호출 합니다 여부를 확인 하려면 속성.

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

.NET Framework 보안

참고 항목

참조

IVsDataHostService 인터페이스

Microsoft.VisualStudio.Data.Core 네임스페이스