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 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용를 참조하세요.