다른 오픈 소스 프로젝트를 통해 다른 방법으로 동일한 문제에 접근하는 느낌을 얻으 려합니다. 이번에는 Event Aggregators, 특히 Caliburn.Micro의 이벤트 수집기입니다.UI에서 호출하는 방법을 이해하려고 시도했습니다. 스레드
나는 Rob이 제공하는 스레드가 없다면 EA가 UI 스레드를 마샬링합니다. 라인은 특히 다음과 같습니다에 대한 더 다음
public static Action<System.Action>
DefaultPublicationThreadMarshaller = action => action();
과 :
marshal(() =>
{
*SNIP*
});
이해가 안 돼요 어떻게 자신의 당신이 모든 작업을 호출이이 UI 스레드에서 호출됩니다 말할 수있는 방법 당신이 지정하지 않는 한 UI 스레드? (btw라고하는 동작을 지정할 수 있습니다. 위의 줄은 동작이 제공되지 않는 경우입니다).
UI 스레드에서이 문제를 일으키는 원인은 아무 것도 없습니다. 'DefaultPublicationThreadMarshaller'는 단순히 현재 실행중인 쓰레드의 액션을 호출합니다. UI 스레드에 대한 언급은 어디에서 찾을 수 있습니까? – Groo
이러한 자동 동작이 없습니다. 아마도 그것은 마샬()이 어떻게 설계되고 구현되었는지에 관한 것입니다. –