2012-12-10 2 views
0

이전에이 문제가 발생 했습니까? Dispatcher는 응용 프로그램 시작 직후에 대기열 처리를 중지하는 경우가 있습니다. 대기열은 빌드 W 빌드 만하고 Dispatcher는 아무 작업도 수행하지 않습니다. UI 스레드가 응답합니다. 가장 중요한 부분은 문제가 비 결정적이라는 것입니다. 때로는 나타납니다, 때로는 그렇지 않습니다. 시작할 때 큰 파일을로드하면 표시 될 가능성이 훨씬 큽니다. 내 앱은 많은 일을하며 디버깅을 시작할 위치를 모른다. Dispatcher의 코드를 검토해보기를 바랄뿐입니다.하지만 폐쇄 소스 프레임 워크를 사용할 때 얻을 수 있습니다. 젠장 MS와 망할 버기 실버 라이트.Silverlight Dispatcher가 잠기고 대기열에서 작업 처리가 중지됩니다.

+0

안녕하세요 @Aleksandr 혹시이 문제를 해결 했습니까? 당신이 가지고있는 해결책을 함께 나눌 수 있다면 정말로 감사 할 것입니다. –

+0

@SarafTalukder 글쎄, 나는 대답에 몇 가지를 썼다. 알아 차 렸니? 어쨌든, 지금은 그 문제를 기억하지 못합니다. –

답변

0

이 여기에 귀하의 질문에 대답하지 않지만, 당신이 Dispatcher의 코드를 검사하는 데 사용할 수있는 Telerik에서 무료 도구입니다 : 당신은 또한 반사판을 사용할 수
http://www.telerik.com/products/decompiler.aspx

을하지만 무료로하지 않습니다 (14 일 평가판) :
http://www.reflector.net/

+0

좋은 아이디어! 놀랍게도 Dispatcher 코드는 매우 간단합니다. 하지만 .. 디버거와 함께 디 컴파일 된 코드를 사용하는 가장 좋은 방법은 무엇입니까? 도구 중 하나 (어쩌면 DotPeek)를 사용하면 자동으로 수행 할 수 있지만 VS 2012에서는 옵션이 표시되지 않습니다. –

0

리플렉터는 Dispatcher 디버깅을 돕고 (PDB를 생성하고 잘 통합 됨). 실버 라이트 디스패처는 네이티브 코드 디스패처를위한 단순한 랩퍼처럼 보입니다. 랩퍼는 BeginInvoke 위임자를 대기 행렬로 처리하고 원시 (native) 디스패처가 Dispatcher에서 콜백을 호출 할 때 실행합니다. 대기열이 비어 있고 첫 번째 위임이 대기열에 들어갈 때 Dispatcher는 RuntimeHost에게 기회가 발생할 때마다 Dispatcher에 콜백해야 함을 알립니다.

내 이론은 브라우저 외부에서 실행 중일 때 분명히 발생하지만 인 브라우저에 대해서는 확실하지 않습니다. Dispatcher가 RuntimeHost를 잘못된 시간에 콜백하도록 요청하면 (예 : 응용 프로그램 시작이 완료되지 않은 경우) RuntimeHost가 새로운 UI 요소를 많이 처리하고있을 때 ... 정확하게 말할 수 없다면 RuntimeHost는 콜백에 대해 잊어 버립니다. Dispatcher는 두 번째 묻지 않으며 절대로 작업하지 않습니다.

DispatcherTimer를 사용하는 것이 좋습니다 (Dispatcher가 멈추었을 때 DispatcherTimers가 계속 틱). Dispatcher를 가장 쉽게 대체 할 수있는 방법은 DispatcherTimer 기반 코드 패 스가 포함 된 Dispatcher 디 컴파일 된 소스 코드를 복사하는 것입니다.

관련 문제