인스턴스를 생성하고 창을 표시하려고했을 때 {"The calling thread must be STA, because many UI components require this."}
이라는 예외가 생겼으므로 다음과 같이 분리 된 STA 스레드에서 모두 다시 처리했습니다.창은 sepatarted 스레드에서 생성되고 표시되는 즉시 닫힙니다.
var thread = new Thread(() =>
{
notificationPopUp = new NotificationPopUpView(unreadNotifications.First().session_s,unreadNotifications.First().secondry_msg);
notificationPopUp.Show();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
이제 창이 표시되어 즉시 사라집니다. 스레드가 작업을 종료 한 것은 내 선언 된 개체보다 너무 빠르다 고 생각합니다. 올바른 경우, 어떻게 처리해야합니까? 많은 다른 방법 (필사적으로) 전에 소유자 메서드 전에 Main
메서드 전에 [STAThread]
특성을 넣어이 솔루션을 피하기 위해 노력했지만 같은 문제가 계속, 나는 kn 아, 질문의 제목이 어떻게 든 잘 설명되지는 않지만,이 STA에 대해 언급해야 할 의무가 있습니다. 전체 데이터를 제공하기 위해 사용했던 오류가 있습니다.
그래서 내 기본 질문은 : 왜 창을 즉시 닫고 있습니까?
이제는 스레드에서 만들어졌고 스레드가 작업을 마친 후에 처리 되었기 때문에 STA 스레드 호출자를 존중해야한다는 것을 알고 있어야합니까? 미리 감사드립니다.
, 당신은 여러 번에게 그 답했다고 – thumbmunkeys
@thumbmunkeys를 찾을 수 그래서 그 질문에 대한 답변을 이해합니다. 그래서 저는 SO와 Google에서 최선을 다해 검색해 보았습니다. 초보자라고 생각하고, 여기에 질문을 게시하는 것이 유일한 피난처였습니다. 내가 당신, 그 모든 것을 이해하고 문제를 해결하도록 도와 주시겠습니까? 모든 경우에 ... – AymenDaoudi