【发布时间】:2014-06-30 08:49:26
【问题描述】:
谁能解释我为什么以及何时应该使用 PublishOnBackgroundThread 而不是 PublishOnUIThread。
我找不到任何使用案例PublishOnBackgroundThread,我不确定我应该使用什么方法?
【问题讨论】:
标签: multithreading caliburn.micro eventaggregator background-thread
谁能解释我为什么以及何时应该使用 PublishOnBackgroundThread 而不是 PublishOnUIThread。
我找不到任何使用案例PublishOnBackgroundThread,我不确定我应该使用什么方法?
【问题讨论】:
标签: multithreading caliburn.micro eventaggregator background-thread
这实际上取决于您要发布的消息的类型。
如果您使用 EventAggregator 将来自底层服务的消息显示在 UI 中,那么 PublishOnUIThread 最有意义,因为您将在处理消息时更新 UI。当您使用它在视图模型之间进行通信时也是如此。
相反,有时它用于视图模型发布底层服务正在侦听的事件(而不是依赖于该服务的视图模型)。
该服务可能会执行一些昂贵的工作,这些工作在后台线程上发生是有意义的。就我个人而言,我会在后台服务中将这项工作推送到后台线程,但不同的人需要不同的选择。
为了完整起见,最终包含了该方法。
【讨论】:
Caliburn.Micro.Execute.OnUIThread 方法,我会从中获得什么还是与在 ui 线程上发布相同?