想象一下,您有一个 Listener 类,它将在应用程序启动时使用 Connect 方法连接到某个服务器,然后它开始收听消息,并在收到的每条消息上引发事件 OnRecievedMessage。根据这些消息,您需要更新视图模型,进而更新视图。更重要的是,您必须在新线程上运行 Listen() 方法才能不阻塞 UI,因此事件 OnRecievedMessage 也将在这个新线程上运行。
你将如何将这样的类合并到 WPF/MVVM 应用程序的结构中,以及如何将它与 viewmodel 连接起来?
在这种情况下,我不会使用事件 - 我会公开IObservable<T>
因为 IObservable 将是一个对象,并且可以轻松地传递给/从您获得的函数中返回:
所以不要传递你的“监听器”类——传递你在那里实现/公开的 IObservable!
确保查看Rx-Framework