Silverlight 哪个线程执行注册的操作

Silverlight 哪个线程执行注册的操作,silverlight,mvvm-light,Silverlight,Mvvm Light,在我主页的codebehind中,我注册了以下特定消息: Messenger.Default.Register<String>(this, Notifications.ShowAlert, ShowAlertAction); Messenger.Default.Register(此,Notifications.showart,showartAction); 正如您所想象的,ShowAlertAction执行一些UI工作(在这种情况下会弹出一个子窗口) 我担心的是,可能会发生从非U

在我主页的codebehind中,我注册了以下特定消息:

Messenger.Default.Register<String>(this, Notifications.ShowAlert, ShowAlertAction);
Messenger.Default.Register(此,Notifications.showart,showartAction);
正如您所想象的,
ShowAlertAction
执行一些UI工作(在这种情况下会弹出一个子窗口)


我担心的是,可能会发生从非UI线程发送消息的情况。发送消息时,消息是在执行发送的线程上执行还是在执行注册的线程上执行?

Messenger不会将消息分派到其他线程。因此这是正确的,操作是在发送方的线程上执行的,这可能会导致跨线程异常。为了避免这种情况,建议使用DispatcherHelper类在主线程上发送消息,即使发送者正在后台线程上运行

其他一些框架会自动进行分派(例如Prism),但API非常复杂且容易混淆。我更喜欢直截了当的方法

干杯
Laurent

Messenger不会分派到其他线程。因此这是正确的,操作是在发送方的线程上执行的,这可能会导致跨线程异常。为了避免这种情况,建议使用DispatcherHelper类在主线程上发送消息,即使发送者正在后台线程上运行

其他一些框架会自动进行分派(例如Prism),但API非常复杂且容易混淆。我更喜欢直截了当的方法

干杯 洛朗