我有一个包含在带有 Dllimport 指令的 C# WPF 项目中的第 3 方 dll。我有一个静态 c# 函数,当某个硬件事件发生时,它们将其作为回调调用。
我想完成一个老式 PostMessage 会完成的事情。只需通知我的主窗口回调发生。我知道我可以直接获取我的窗口并投射并调用主窗口的函数,但这似乎有点不稳定。我喜欢旧的异步 PostMessage 模式。也许我的问题更多是关于松散耦合应用程序中的几个组件。
我应该调用一个命令吗?
我有一个包含在带有 Dllimport 指令的 C# WPF 项目中的第 3 方 dll。我有一个静态 c# 函数,当某个硬件事件发生时,它们将其作为回调调用。
我想完成一个老式 PostMessage 会完成的事情。只需通知我的主窗口回调发生。我知道我可以直接获取我的窗口并投射并调用主窗口的函数,但这似乎有点不稳定。我喜欢旧的异步 PostMessage 模式。也许我的问题更多是关于松散耦合应用程序中的几个组件。
我应该调用一个命令吗?
您应该按照您的建议考虑使用松散耦合的事件。一些有用的起点是
Prism 的事件聚合器
Caliburns 的事件聚合器
MVVM Light的信使
它们都做类似的发布-订阅消息传递。
我怀疑您的回调将在另一个线程上,因此您可能需要使用 Dispatcher.Invoke 来编组对您的 UI 线程的调用。