나는 팝업 창인 컨트롤을 사용합니다. 나는 그것을 보이고 숨기는 methodes을 가지고 있고 나는 다른 스레드에서 나의 팝업을 보여주고 숨기는 것을 막을 수있는 기능을 구현할 필요가있다. UI가 아닌 스레드에서 내 팝업을 표시 할 수 있습니까?팝업을 표시하는 스레드를 어떻게 제어 할 수 있습니까?
업데이트
내 질문의 주요 목표는 다음과 같습니다
이그것은, 메서드 숨기기 동일한 스레드에 있어야하는 방법 쇼 시작 스레드 것과 중요하지 않아. 이것을 구현하는 방법?
public void Show()
{
IsShown = true;
if (this.ChildWindowPopup == null)
{
this.ChildWindowPopup = new Popup();
try
{
this.ChildWindowPopup.Child = this;
}
catch (ArgumentException)
{
throw new InvalidOperationException("The control is already shown.");
}
}
if (this.ChildWindowPopup != null && Application.Current.RootVisual != null)
{
// Configure accordingly to the type
InitializeProgressType();
// Show popup
this.ChildWindowPopup.IsOpen = true;
}
}
public void Hide()
{
IsShown = false;
// Restore system tray
SystemTray.IsVisible = currentSystemTrayState;
this.progressBar.IsIndeterminate = false;
this.ChildWindowPopup.IsOpen = false;
}
표시 할 때 Thread.CurrentThread를 저장하고 숨길 때 동일한지를 확인할 수 있습니까? 아직도 - 나는이 질문이 다른 문제를 지적한다고 주장 할 것이다. 왜 스레드를 확인하고 싶습니까? 목표가 일부 작업의 진행률 막대를 표시하는 것이면 - 진행률 표시 줄을 작업과 연관시키는 객체 (토큰)를 만들 수 있습니다. 다른 문제를 디버깅하는 것 이외의 다른 방법을 스레딩 방식으로 관리하려는 이유가 없습니다. –