2009-10-23 7 views
3

완료 이벤트에 대한 비동기식 webservice에는 다음과 같은 코드가 있습니다.Dispatcher CheckAccess의 목적은 무엇입니까?

Debug.Assert(Dispatcher.CheckAccess()); // don't do marshaling here- it's already runinng on UI thread! 

이 코드를 제거하면 어떤 일이 발생하는지 알 수 있습니까? 아니면, 내 질문에 대답 할 수 있습니까?

답변

7

디버깅 어설 션입니다. 제거하면 생산 코드에 영향을 미치지 않습니다.

그래도 무슨 일을하고 있는지 알기 위해 그 시점에서 UI 스레드에 있는지 확인하기 위해 Dispatcher.CheckAccess()을 사용하고 있습니다. 백그라운드 스레드에서 해당 메서드를 호출하면 어설 션이 실패합니다.

제거하면 나중에 디버깅 할 수있는 능력에 영향을 미칠 수 있습니다.

+0

우수! Reed 고마워. – ariso

관련 문제