Я пробираюсь через различные проекты с открытым исходным кодом, чтобы понять, как люди по-разному подходят к одной и той же проблеме.На этот раз это агрегаторы событий, в частности, Caliburn.Micro.
Я заметил, что Роб сказал, что если не будет предоставлен поток, советник будет маршалировать в поток пользовательского интерфейса.В частности, строка:
public static Action<System.Action>
DefaultPublicationThreadMarshaller = action => action();
, а затем далее:
marshal(() =>
{
*SNIP*
});
Что я не понимаю, как он может сказать, что это будет вызвано в потоке пользовательского интерфейса, вседействия, вызываемые в потоке пользовательского интерфейса, если вы не укажете тот, который не?(Вы можете указать, какое действие называется btw, приведенная выше строка указана только в том случае, если действие не указано).