NotifyIcon
으로 WPF 응용 프로그램을 만들었습니다.이 응용 프로그램을 최소화하기 위해 this.Hide()
을 사용했지만, 일단 실행되면 최소화 할 수 있었기 때문에 MainWindow_Loaded
메서드에서 this.Hide()
을 호출했지만 일단 응용 프로그램을 시작하면 , 창 내용이 모두 어두워집니다. 나는이 문제가 발생 다른 스레드를 사용하여 창을 숨기는 방법은 무엇입니까?
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
...
Thread thread = new Thread(DoWork);
thread.Start();
Console.WriteLine("thread start");
while (!thread.IsAlive) ;
Thread.Sleep(500);
thread.Join();
Console.WriteLine("thread has terminated.");
...
}
public void DoWork()
{
this.Hide();
}
가 호출 될 때
DoWork()
, 그것은
Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on.
내가 무엇을해야했다 ...
는 그럼 난 다른 스레드에서 this.Hide()
를 호출 할, 이것은 내 코드와 같은 모습입니다 이걸 피하려면? 감사!
왜 다른 스레드에서에'숨기기()'당신의 창을 하시겠습니까? 이것의 요점은 무엇입니까? – dymanoid
일단 컴퓨터를 시작하면 바로 창을 숨길 필요가 있기 때문에 MainWindow_Loaded에서 Hide()를 호출하지만 창에 어둡게 가득 찬 창을 표시합니다. 이것이 내가이 방법으로 원하는 이유입니다 . – Alanight
멀티 스레드 해결 방법을 고안하기보다는 왜 창문이 검게되는지 알아야합니다. 귀하의 코드에 문제가 있다고 생각합니다. 귀하의 질문은 일반적인 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)입니다. – dymanoid