私はさまざまなオープンソース プロジェクトを通じて、人々が同じ問題にさまざまな方法でアプローチする方法を感じ取っています。今回は Event Aggregators で、具体的には Caliburn.Micro のものです。
Rob が、スレッドが提供されない場合、EA は UI スレッドにマーシャリングすると言ったことに気付きました。行は具体的には次のとおりです。
public static Action<System.Action>
DefaultPublicationThreadMarshaller = action => action();
そしてさらに:
marshal(() =>
{
*SNIP*
});
彼が理解できないのは、これがUIスレッドで呼び出されるとどのように言うことができるかということです。そうでないアクションを指定しない限り、すべてのアクションがUIスレッドで呼び出されますか? (ところで、どのアクションが呼び出されるかを指定できます。上記の行は、アクションが指定されていない場合のみです)。