2012-03-21 3 views
0

노래를 재생하려고하면 사람이 내 응용 프로그램에 전화를 걸고 있습니다. 하지만 mediaElement1.play();이 사용되면 나는 단지 The calling thread cannot access this object because a different thread owns it.을 얻습니다. 스레딩을 사용하려고했습니다. 그러나 문제는 단지 움직이게됩니다. 최저 관련 모르 텐 스탁WPF에서의 스레드 어려움

+3

나는 언더랜드 영어가 첫 번째 언어는 아니지만 질문은 어디에 있습니까? 질문을하는 중 질문을하지 않습니다. 제발 다시 말해봐. – TomTom

+0

This (호출하는 스레드는 다른 스레드가이 객체를 소유하고 있기 때문에이 객체에 액세스 할 수 없습니다.) 그렇다고해서 스레드가 필요하다는 의미는 아니지만 이미 있습니다. 폴 (Paul)이 제공 한 대답은 미디어 요소 (back)를 기본 UI 스레드로 가져와 UI 마법이 발생합니다. 너도 알다시피. – Silvermind

답변

2

이 트릭을 할합니까?

 if (!mediaElement1.CheckAccess()) 
      mediaElement1.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, 
       (Action)delegate 
       { 
        mediaElement1.play(); 
       });